Freigeben über


ISecurityProperty::GetDirectCallerSID-Methode (comsvcs.h)

Ruft den Sicherheitsbezeichner des externen Prozesses ab, der die derzeit ausgeführte Methode aufgerufen hat. Sie können diese Informationen auch mit ISecurityCallContext abrufen.

Syntax

HRESULT GetDirectCallerSID(
  [out] PSID *pSID
);

Parameter

[out] pSID

Ein Verweis auf die Sicherheits-ID des Prozesses, von dem aus die aktuelle Methode aufgerufen wurde.

Rückgabewert

Diese Methode kann die Standardrückgabewerte E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED und E_FAIL sowie die folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Die Sicherheits-ID des Prozesses, der die aktuelle Methode aufgerufen hat, wird im Parameter pSid zurückgegeben.
CONTEXT_E_NOCONTEXT
Dem aktuellen Objekt ist kein Kontext zugeordnet, da entweder die Komponente nicht in eine Anwendung importiert wurde oder das Objekt nicht mit einer der CREATEInstance-Methoden von COM+ erstellt wurde.

Hinweise

Verwenden Sie die GetDirectCallerSID-Methode , um die Sicherheits-ID des Prozesses zu ermitteln, der die derzeit ausgeführte Methode des Objekts aufgerufen hat. Die Sicherheit wird über Prozessgrenzen hinweg erzwungen. Dies bedeutet, dass die von GetDirectCallerSID zurückgegebene Sicherheits-ID die Sicherheits-ID ist, die dem Prozess zugeordnet ist, der in den Prozess aufgerufen hat, in dem das aktuelle Objekt ausgeführt wird, und nicht unbedingt der unmittelbare Aufrufer in das Objekt selbst. Wenn ein Objekt ein anderes Objekt innerhalb desselben Prozesses aufruft, ruft das zweite Objekt GetDirectCallerSID auf, die Sicherheits-ID des unmittelbarsten Aufrufers außerhalb seiner eigenen Prozessgrenze, nicht die Sicherheits-ID des Objekts, das direkt aufgerufen hat.

Die folgenden Szenarien veranschaulichen die Funktionalität der GetDirectCallerSID-Methode :

  • Ein Basisprozess, der auf Server A als Benutzer A ausgeführt wird, ruft Objekt X auf Server B auf und wird als Benutzer B ausgeführt. Anschließend ruft Objekt X Objekt Y auf, das auf Server C ausgeführt wird. Wenn Objekt Y GetDirectCallerSID aufruft, wird die Sicherheits-ID von Benutzer B zurückgegeben.
  • Ein Basisprozess, der auf Server A als Benutzer A ausgeführt wird, ruft Objekt X auf Server B auf und wird als Benutzer B ausgeführt. Anschließend ruft Object X Objekt Y auf, das im gleichen Prozess wie Objekt X ausgeführt wird, auch auf Server B. Wenn Objekt Y GetDirectCallerSID aufruft, wird die Sicherheits-ID von Benutzer A zurückgegeben, nicht die Sicherheits-ID von Benutzer B.
Sie müssen ISecurityProperty::ReleaseSID für eine Sicherheits-ID aufrufen, wenn Sie die Verwendung beenden.

Anforderungen

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

Weitere Informationen

ISecurityProperty