2009-08-01 7 views
1

Ich verwende Windows-Authentifizierung und habe keine benutzerdefinierte Mitgliedschaft. Allerdings habe ich einen benutzerdefinierten Rollenanbieter und habe ihn aktiviert. Wie steht es aber mit dem Element < authorization /> in der Datei web.config? Muss ich auch etwas damit machen?Unterschied zwischen Roles.GetRolesForUser und Roles.Provider.GetRolesForUser?

Im Moment kann ich nicht verwenden Roles.GetRolesForUser ("") -Methode (gibt nichts zurück) aber muss es tun wie Roles.Provider.GetRolesForUser ("")?

Das größte Problem ist mit den Sitemaps, da es nicht in die Roles.IsUserInRole-Methode gelangt. Im Moment verwende ich einen benutzerdefinierten xmlsitemapprovider für dieses, aber es ist nicht ordentlich.

Ich habe den rolemanager aktiviert und set the securitytrimmingenabled für die Sitemap in der Datei web.config auf true gesetzt.

+0

Haben Sie das jemals gelöst? – zsharp

+0

Es war aufgrund eines Fehlers im Lebenszyklus des HttpModule, wo die IPrincipal-Implementierung initialisiert wurde. Nachdem ich die Initialisierung früher im Lebenszyklus platziert habe, hat es für mich gut funktioniert. –

Antwort

1

Ja, müssen Sie Ihre benutzerdefinierte Rollen-Provider in web.config konfigurieren - etwa so:

<roleManager enabled="true" defaultProvider="SqlRoleManager"> 
    <providers> 
    <add name="SqlRoleManager" 
     type="System.Web.Security.SqlRoleProvider" 
     connectionStringName="SqlRoleManagerConnection" 
     applicationName="MyApplication" /> 
    </providers> 
</roleManager> 

Sie auch security trimming auf true zu setzen soll. z.B.

<siteMap defaultProvider="XmlSiteMapProvider" enabled="true"> 
    <providers> 
     <add name="XmlSiteMapProvider" 
     description="Default SiteMap provider." 
     type="System.Web.XmlSiteMapProvider " 
     siteMapFile="Web.sitemap" 
     securityTrimmingEnabled="true" /> 
    </providers> 
    </siteMap> 
+0

Ich habe in meiner Frage beschrieben, dass ich diese alle in der web.config gesetzt habe. Anscheinend war das nicht klar, also habe ich die Frage bearbeitet und sie eingefügt. Tut mir leid, aber diese Antwort hilft mir in diesem Moment nicht. –