Dela via


Inaktivera aktiveringssäkerhet

Normalt använder aktivering standardsäkerhetsinställningar. Du kan dock styra aktiveringssäkerheten genom att ange en COAUTHINFO- struktur, som är medlem i COSERVERINFO- struktur som skickas till aktiveringsfunktionerna. Om klienten anger en autentiseringsnivå på RPC_C_AUTHN_LEVEL_NONE i COAUTHINFO- struktur, görs inte autentisering. Annars görs ett säkert aktiveringsförsök, och om autentiseringen misslyckas misslyckas aktiveringen.

Om klienten inte anger en explicit COAUTHINFO struktur och i stället anger pekaren till NULL-försöker COM autentisera klienten. Om den inte kan autentisera klienten kontrollerar COM säkerhetsbeskrivningen för startbehörighet för att se om det finns en NULL- DACL eller en ACL som ger åtkomst till Alla. Om kontrollen lyckas startas servern. Även om klienten inte anger en COAUTHINFOstruktur kan därför oskyddad aktivering ske när servern tillåter det.

Anteckning

Om du vill tillåta oautentiserade nätverksanvändare att köra ett COM-program måste programrollerna innehålla den anonyma användaren. Från och med Windows Server 2003 ingår som standard inte den anonyma användaren i gruppen Alla.

 

Varför skulle en klient vilja inaktivera aktiveringssäkerhet explicit även om oskyddad aktivering så småningom kommer att ske om servern tillåter det? Eftersom du uttryckligen inaktiverar aktiveringssäkerhet ökar prestandan när klienten inte vill ha eller behöver säkerhetskontroller.

Följande saker måste göras för att uttryckligen inaktivera aktiveringssäkerhet:

  • Klienten måste ange en autentiseringsnivå för RPC_C_AUTHN_LEVEL_NONE i COAUTHINFO struktur som är medlem i den COSERVERINFO- struktur som tillhandahålls till aktiveringsfunktionen.
  • Klienten måste ange en efterlikningsnivå av RPC_C_IMP_LEVEL_IMPERSONATE i COAUTHINFO-strukturen som är medlem i den COSERVERINFO-strukturen som tillhandahålls till aktiveringsfunktionen. Om det här värdet inte skickas får du RPC_S_SERVER_UNAVAILABLE.
  • Servern måste ange Alla för standardstartbehörigheter. Det rekommenderade sättet att utföra den här uppgiften är att använda Dcomcnfg.exe på följande sätt:
    1. Kör Dcomcnfg.exe.
    2. På sidan Program väljer du det program som representerar servern. Klicka på knappen Egenskaper (eller dubbelklicka på det valda programmet).
    3. På egenskapssidan Security klickar du på knappen Använd anpassade startbehörigheter.
    4. Klicka på knappen Redigera i området Körningsbehörigheter.
    5. I dialogrutan Behörigheter för registervärde klickar du på knappen Lägg till.
    6. Välj posten för Alla i listrutan.
    7. I listrutan Typ av åtkomst väljer du Tillåt start.
    8. Klicka på knappen OK.

Notera

I Windows Server 2003 innehåller autentiseringsfunktionen för COM+-systemprogrammet värdet EOAC_DISABLE_AAA. Det här värdet, som inaktiverar aktiveringar som "aktivera-som-aktiverare" (AAA), används i CoInitializeSecurity-anropet när systemprogrammet startas. Om du ställer in autentiseringsfunktionen på EOAC_DISABLE_AAA kan ett program som körs under ett privilegierat konto (till exempel LocalSystem) förhindra att dess identitet används för att starta obetrodda komponenter.

 

inaktivera samtalssäkerhet