ASP.NET Mitgliedschaft - Die RoleProvider zu bedienen, so dass Benutzer.IsInRole () - prüft, ActiveDirectory-Gruppen?
Ganz einfache Frage eigentlich:
Ich habe derzeit IIS der anonyme Zugriff deaktiviert ist, können Benutzer automatisch angemeldet mit Ihrer Windows-Anmeldung. Allerdings aufrufenden Benutzers.IsInRole("Rollenname") gibt false zurück. Ich doppelt überprüft Benutzer.Identität.Name() und die "Role name" und es sollte true zurückgeben.
Momentan habe ich in meinem Web.Config:
UPDATE
Ich war aufrufenden Benutzers.IsInRole("Rollenname"), wo ich anrufen sollte Benutzer.IsInRole("DOMÄNE\Rollenname")
Ich aber noch gerne wissen, ob der <Mitgliedschaft> Eintrag überhaupt erforderlich?
Was sollte ich ändern? (und ist die <Mitgliedschaft> Eintrag überhaupt erforderlich?)
<authentication mode="Windows">
<forms
name=".ADAuthCookie"
timeout="10" />
</authentication>
<membership defaultProvider="ADMembershipProvider">
<providers>
<clear/>
<add
name="ADMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADConnectionString"
connectionUsername="XXX\specialAdUser"
connectionPassword="xx"
/>
</providers>
</membership>
<roleManager enabled="true" defaultProvider="WindowsProvider">
<providers>
<clear />
<add name="WindowsProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie die Windows-Authentifizierung verwenden "IsInRole" - funktioniert ohne zusätzliche Konfiguration, so lange wie Sie sich erinnern Präfix die Rolle mit der domain, also DOMAIN\groupName.
Darüber hinaus können Sie die Rolle (Wortspiel beabsichtigt) Ihre eigenen und verwenden Sie die Windows auth gegen, zum Beispiel, eine SQL-Rolle-Anbieter, wo Sie nicht möchten, dass Ihre ANZEIGE übersät mit benutzerdefinierten Rollen für Ihre Anwendung.
Nicht So, Sie müssen nicht die provider-Konfiguration überhaupt.
Den Mitgliedschaftsanbieter hier ist nicht zu helfen. Die ActiveDirectoryMembershipProvider scheint die beste(einzige?) Passform mit Formen-Authentifizierung.
BlogEngine.NET hat ein Active Directory Rolle Anbieter.
Ziemlich sicher, dass die einzige Sache, die Sie brauchen, es ist der roleManager-Gruppe (zusammen mit der base authentication mode= "windows" - Einstellung)
Out of the box, es gibt keine Rolle, die provider zur Nutzung von Active Directory direkt. Sie können die Tabelle in der Rolle ASP.NET membership - und role-system, oder Sie können mit dem Autorisierungs-Manager (AzMan).
Gibt es einen Artikel auf CodeProject, das zeigt die Umsetzung einer Rolle, die provider, die gegen das Active Directory - source-code. Vielleicht hilft dies ja?
Marc