EOLE_AUTHENTICATION_CAPABILITIES-Enumeration (objidl.h)

Gibt verschiedene Funktionen in CoInitializeSecurity und IClientSecurity::SetBlanket (oder dessen Hilfsfunktion CoSetProxyBlanket) an.

Syntax

typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
  EOAC_NONE = 0,
  EOAC_MUTUAL_AUTH = 0x1,
  EOAC_STATIC_CLOAKING = 0x20,
  EOAC_DYNAMIC_CLOAKING = 0x40,
  EOAC_ANY_AUTHORITY = 0x80,
  EOAC_MAKE_FULLSIC = 0x100,
  EOAC_DEFAULT = 0x800,
  EOAC_SECURE_REFS = 0x2,
  EOAC_ACCESS_CONTROL = 0x4,
  EOAC_APPID = 0x8,
  EOAC_DYNAMIC = 0x10,
  EOAC_REQUIRE_FULLSIC = 0x200,
  EOAC_AUTO_IMPERSONATE = 0x400,
  EOAC_DISABLE_AAA = 0x1000,
  EOAC_NO_CUSTOM_MARSHAL = 0x2000,
  EOAC_RESERVED1 = 0x4000
} EOLE_AUTHENTICATION_CAPABILITIES;

Konstanten

 
EOAC_NONE
Wert: 0
Gibt an, dass keine Funktionsflags festgelegt sind.
EOAC_MUTUAL_AUTH
Wert: 0x1
Wenn dieses Flag angegeben wird, wird es ignoriert. Unterstützung für die gegenseitige Authentifizierung wird automatisch von einigen Authentifizierungsdiensten bereitgestellt. Weitere Informationen finden Sie unter COM- und Sicherheitspakete .
EOAC_STATIC_CLOAKING
Wert: 0x20
Legt statisches Cloaking fest. Wenn dieses Flag festgelegt ist, verwendet DCOM das Threadtoken (sofern vorhanden), wenn die Identität des Clients bestimmt wird. Die Identität des Clients wird jedoch beim ersten Aufruf jedes Proxys (wenn SetBlanket nicht aufgerufen wird) und jedes Mal, wenn CoSetProxyBlanket auf dem Proxy aufgerufen wird, bestimmt. Weitere Informationen zum statischen Cloaking finden Sie unter Cloaking.


CoInitializeSecurity und IClientSecurity::SetBlanket geben Fehler zurück, wenn beide Cloaking-Flags festgelegt sind oder wenn eines der Flags festgelegt ist, wenn Schannel der Authentifizierungsdienst ist.
EOAC_DYNAMIC_CLOAKING
Wert: 0x40
Legt die dynamische Tarnung fest. Wenn dieses Flag festgelegt ist, verwendet DCOM das Threadtoken (sofern vorhanden), wenn die Identität des Clients bestimmt wird. Bei jedem Aufruf eines Proxys wird das aktuelle Threadtoken untersucht, um festzustellen, ob sich die Identität des Clients geändert hat (was zusätzliche Leistungskosten verursacht), und der Client wird nur bei Bedarf erneut authentifiziert. Dynamisches Cloaking kann nur von Clients festgelegt werden. Weitere Informationen zum dynamischen Cloaking finden Sie unter Cloaking.


CoInitializeSecurity und IClientSecurity::SetBlanket geben Fehler zurück, wenn beide Cloaking-Flags festgelegt sind oder wenn eines der Flags festgelegt ist, wenn Schannel der Authentifizierungsdienst ist.
EOAC_ANY_AUTHORITY
Wert: 0x80
Dieses Flag ist veraltet.
EOAC_MAKE_FULLSIC
Wert: 0x100
Bewirkt, dass DCOM Schannel-Serverprinzipalnamen im vollständigen Format im Rahmen der Standardsicherheitsverhandlung an Clients sendet. Der Name wird aus dem Serverzertifikat extrahiert. Weitere Informationen zum vollständigen Formular finden Sie unter Prinzipalnamen.
EOAC_DEFAULT
Wert: 0x800
Weist DCOM an, die gültigen Funktionen aus dem Aufruf von CoInitializeSecurity zu verwenden. Wenn CoInitializeSecurity nicht aufgerufen wurde, wird EOAC_NONE für das Capabilities-Flag verwendet. Dieses Flag kann nur von Clients in einem Aufruf von IClientSecurity::SetBlanket oder CoSetProxyBlanket festgelegt werden.
EOAC_SECURE_REFS
Wert: 0x2
Authentifiziert Aufrufe der Anzahl verteilter Verweise, um zu verhindern, dass böswillige Benutzer objekte freigeben, die noch verwendet werden. Wenn dieses Flag festgelegt ist, was nur in einem Aufruf von CoInitializeSecurity durch den Client erfolgen kann, kann die Authentifizierungsebene (in dwAuthnLevel) nicht auf "none" festgelegt werden.

Der Server authentifiziert immer Releaseaufrufe. Das Festlegen dieses Flags verhindert, dass ein authentifizierter Client die Objekte eines anderen authentifizierten Clients freigibt. Es wird empfohlen, dass Clients dieses Flag immer festlegen, obwohl die Leistung aufgrund des mit der zusätzlichen Sicherheit verbundenen Mehraufwands beeinträchtigt wird.
EOAC_ACCESS_CONTROL
Wert: 0x4
Gibt an, dass der pSecDesc-Parameter auf CoInitializeSecurity ein Zeiger auf eine IAccessControl-Schnittstelle in einem Zugriffssteuerungsobjekt ist. Wenn DCOM Sicherheitsüberprüfungen durchführt, wird IAccessControl::IsAccessAllowed aufgerufen. Dieses Flag wird nur vom Server festgelegt.


CoInitializeSecurity gibt einen Fehler zurück, wenn sowohl die flags EOAC_APPID als auch EOAC_ACCESS_CONTROL festgelegt sind.
EOAC_APPID
Wert: 0x8
Gibt an, dass der pSecDesc-Parameter auf CoInitializeSecurity ein Zeiger auf eine GUID ist, die eine AppID ist. Die CoInitializeSecurity-Funktion sucht die AppID in der Registrierung und liest die Sicherheitseinstellungen von dort aus. Wenn dieses Flag festgelegt ist, werden alle anderen Parameter auf CoInitializeSecurity ignoriert und müssen null sein. Nur der Server kann dieses Flag festlegen. Weitere Informationen zu diesem Funktionsflag finden Sie weiter unten im Abschnitt Hinweise.


CoInitializeSecurity gibt einen Fehler zurück, wenn sowohl die flags EOAC_APPID als auch EOAC_ACCESS_CONTROL festgelegt sind.
EOAC_DYNAMIC
Wert: 0x10
Reserviert.
EOAC_REQUIRE_FULLSIC
Wert: 0x200
Bewirkt, dass DCOM CoSetProxyBlanket-Aufrufe fehlschlägt, wenn ein Schannel-Prinzipalname in einem anderen Format als fullsic angegeben wird. Dieses Flag gilt derzeit nur für Clients. Weitere Informationen zum vollständigen Formular finden Sie unter Prinzipalnamen.
EOAC_AUTO_IMPERSONATE
Wert: 0x400
Reserviert.
EOAC_DISABLE_AAA
Wert: 0x1000
Bewirkt, dass jede Aktivierung, bei der ein Serverprozess unter der Identität des Aufrufers (activate-as-activator) gestartet wird, mit E_ACCESSDENIED fehlschlägt. Dieser Wert, der nur in einem Aufruf von CoInitializeSecurity vom Client angegeben werden kann, ermöglicht es einer Anwendung, die unter einem privilegierten Konto (z. B. LocalSystem) ausgeführt wird, zu verhindern, dass ihre Identität zum Starten nicht vertrauenswürdiger Komponenten verwendet wird.

Ein Aktivierungsaufruf, der CLSCTX_ENABLE_AAA der CLSCTX-Enumeration verwendet, ermöglicht aktivierungsbasierte Aktivierungen für diesen Aufruf.
EOAC_NO_CUSTOM_MARSHAL
Wert: 0x2000
Die Angabe dieses Flags trägt zum Schutz der Serversicherheit bei der Verwendung von DCOM oder COM+ bei. Dies verringert die Wahrscheinlichkeit, dass beliebige DLLs ausgeführt werden, da nur CLSIDs gemarshallt werden können, die in Ole32.dll, ComAdmin.dll, ComSvcs.dll oder Es.dll implementiert sind oder die die CATID_MARSHALER Kategorie-ID implementieren. Jeder Dienst, der für den Systembetrieb wichtig ist, sollte dieses Flag festlegen.
EOAC_RESERVED1
Wert: 0x4000

Hinweise

Wenn das flag EOAC_APPID festgelegt ist, sucht CoInitializeSecurity nach der Authentifizierungsebene unter der AppID. Wenn die Authentifizierungsebene nicht gefunden wird, wird nach der Standardauthentifizierungsebene gesucht. Wenn die Standardauthentifizierungsstufe nicht gefunden wird, wird die Standardauthentifizierungsebene "connect" generiert. Wenn die Authentifizierungsebene nicht RPC_C_AUTHN_LEVEL_NONE ist, sucht CoInitializeSecurity unter der AppID nach dem Wert für die Zugriffsberechtigung. Wenn sie nicht gefunden wird, wird nach dem Standardzugriffsberechtigungswert gesucht. Wenn sie nicht gefunden wird, wird eine Standardzugriffsberechtigung generiert. Alle anderen Sicherheitseinstellungen werden auf die gleiche Weise wie für eine Legacyanwendung bestimmt.

Wenn die AppID NULL ist, sucht CoInitializeSecurity die Anwendung .exe Namen in der Registrierung und verwendet die dort gespeicherte AppID. Wenn die AppID nicht vorhanden ist, werden die Standardeinstellungen des Computers verwendet.

Die IClientSecurity::SetBlanket-Methode und die CoSetProxyBlanket-Funktion geben einen Fehler zurück, wenn eines der folgenden Flags im capabilities-Parameter festgelegt ist: EOAC_SECURE_REFS, EOAC_ACCESS_CONTROL, EOAC_APPID, EOAC_DYNAMIC, EOAC_REQUIRE_FULLSIC, EOAC_DISABLE_AAA oder EOAC_NO_CUSTOM_MARSHAL.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Kopfzeile objidl.h (include Objidl.h)

Weitere Informationen

CoInitializeSecurity

CoSetProxyBlanket

IAccessControl

IClientSecurity::SetBlanket