IHttpUser::IsInRole-Methode
Gibt einen Wert zurück, der angibt, ob der Benutzer für eine benannte Rolle autorisiert ist.
Syntax
virtual HRESULT IsInRole(
IN PCWSTR pszRoleName,
OUT BOOL* pfInRole
) = 0;
Parameter
pszRoleName
[IN] Ein Zeiger auf eine konstante Unicode-Zeichenfolge mit NULL-Beendigung, die den Namen der Rolle enthält.
pfInRole
[OUT] Ein Zeiger auf einen BOOL
, der angibt, ob der Benutzer für die von pszRoleName
angegebene Rolle autorisiert ist.
Rückgabewert
HRESULT
. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.
Wert | Definition |
---|---|
S_OK | Gibt an, dass der Vorgang erfolgreich war. |
E_NOTIMPL | Gibt an, dass die IsInRole Methode nicht implementiert wurde. |
Bemerkungen
Rufen Sie die IsInRole
-Methode nur auf, wenn die SupportsIsInRole-Methode zuerst denselben IHttpUser-Zeiger zurückgibttrue
.
Der IsInRole
Rückgabewert hängt von der Implementierung ab. Sie sollten die folgenden Informationen als Richtlinie verwenden, aber möglicherweise nicht in allen Szenarien richtig:
Wenn der Implementierer die
IHttpUser
anonyme Authentifizierung verarbeitet, wird der abgeleitetepfInRole
Parameter nur dann auftrue
festgelegt, wenn derpszRoleName
Parameter entweder NULL oder leer ist.IsInRole
gibt dann immer S_OK zurück.Wenn der Implementierer die
IHttpUser
Standard-, Zertifizierungszuordnungs-, SSPI- oder benutzerdefinierte Authentifizierung verarbeitet, wird derpfInRole
Parameter nicht geändert undIsInRole
gibt sofort E_NOTIMPL zurück.Wenn der Implementierer die
IHttpUser
verwaltete Authentifizierung verarbeitet, ist derpfInRole
Parameter unverändert undIsInRole
gibt E_INVALIDARG sofort zurück, wenn beide Parameter NULL sind.pfInRole
Andernfalls ist auftrue
festgelegt undIsInRole
gibt nur dann S_OK zurück, wenn sich der Benutzer in der Rolle befindet.
Beispiel
Im folgenden Codebeispiel wird veranschaulicht, wie Sie ein HTTP-Modul erstellen, das die Antwortheader und den Text löscht und anschließend Benutzerinformationen als XML-Dokument an den Client zurückgibt.
Mit dem obigen Code wird XML geschrieben, das dem folgenden ähnlich ist wie der Antwortdatenstrom.
<?xml version="1.0" ?>
<user supportsRoles="true" isInRole="false" />
Ihr Modul muss die Funktion RegisterModule exportieren. Sie können diese Funktion exportieren, indem Sie eine Moduldefinitionsdatei (.def) für Ihr Projekt erstellen, oder Sie können das Modul mithilfe des /EXPORT:RegisterModule
Switches kompilieren. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen eines Request-Level HTTP-Moduls mithilfe von nativem Code.
Sie können den Code optional kompilieren, indem Sie die __stdcall (/Gz)
aufrufende Konvention verwenden, anstatt die aufrufende Konvention für jede Funktion explizit zu deklarieren.
Anforderungen
type | BESCHREIBUNG |
---|---|
Client | – IIS 7.0 unter Windows Vista – IIS 7.5 unter Windows 7 – IIS 8.0 unter Windows 8 – IIS 10.0 auf Windows 10 |
Server | – IIS 7.0 unter Windows Server 2008 – IIS 7.5 unter Windows Server 2008 R2 – IIS 8.0 unter Windows Server 2012 – IIS 8.5 unter Windows Server 2012 R2 – IIS 10.0 auf Windows Server 2016 |
Produkt | – IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0 - IIS Express 7.5, IIS Express 8.0, IIS Express 10.0 |
Header | Httpserv.h |