2010-11-29 11 views
2

Ich versuche AzMan für eine meiner ASP.NET-Anwendungen zu bewerten, aber ich habe ein seltsames Problem. Meine Testanwendung erwartet drei Rollen:ASP.NET rollenbasierte Sicherheit mit AzMan und AD Rollen

  • Benutzer
  • Besitzer
  • Admin

I XML-Autorisierungsspeicher erstellt befindet sich in Anwendung App_Data und hinzugefügt, um diese Rollendefinitionen. Ich habe meine ASP.NET-Testanwendung so konfiguriert, dass sie AuthorizationStoreRoleProvider verwendet, und ich habe einen Testcode hinzugefügt, der Principal.IsInRole und PrincipalPermission verwendet. Alles funktionierte auf meinem lokalen Computer mit lokalen Konten, die den Rollen in AzMan zugewiesen waren.

Dann habe ich meine Testanwendung auf den Server verschoben, und ich habe Active Directory-Benutzer und -Gruppen den AzMan-Rollen zugewiesen. Jetzt funktionieren PrincipalPermission und Principal.IsInRole nicht mehr. Interessant ist, dass wenn ich die Built-in-Gruppe "Jeder" einer Rolle zuweiße, dies funktioniert, so gibt es ein Problem mit AD-Benutzern und Gruppen, die Rollen zugewiesen sind. Kann ich den XML-Autorisierungsspeicher mit AD-Gruppen und Benutzern verwenden? Was kann sonst noch zu solchen Problemen führen?

Antwort

1

Überprüfen Sie die Sicherheitseinstellungen in Ihrer asp.net-Anwendung.

Es hört sich an, als ob die anonyme Authentifizierung aktiviert ist, also kommen Ihre Benutzer als anonyme Benutzer, nicht sie selbst, daher funktioniert es für jede Gruppe.

+0

Sicherheitseinstellung ist korrekt. Ich habe eine Diagnoseseite, auf der ich den Benutzernamen und die Domäne des authentifizierten Benutzers sehe. –

+0

Long shot: Vermissen Sie das Domain-Präfix bei der Zuweisung von Gruppen zu Azman-Rollen, so dass es versucht, lokale Gruppen anstelle von Domänengruppen zu verwenden? Auch war die Gruppenzuordnung nach dem letzten Login, wenn ja, abmelden und wieder rein. –

+0

Bingo. Die AD-Struktur ist viel komplexer, als ich erwartet habe, und Gruppen und Benutzer werden zwischen zwei Bäumen dupliziert. Ich habe versehentlich Gruppen und Benutzer von verschiedenen AD-Baum zugewiesen dann habe ich erwartet. –

0
<roleManager enabled="true" cacheRolesInCookie="false" cookieName=".ASPXROLES" cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" cookieProtection="All" defaultProvider="AspNetWindowsTokenRoleProvider" createPersistentCookie="false" maxCachedResults="25"> 
     <providers> 
      <clear/> 
      <add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
     </providers> 
    </roleManager> 
Verwandte Themen