Autor Beitrag
kingdave2nd
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Mi 01.07.09 17:51 
Hi all,

ich möchte gerne einen CustomRoleProvider bauen. Ich habe also die Klasse "ToomaRoleProvider" erstellt und von RoleProvider abgeleitet.

Anschliessend habe ich (neben dem schon funktionierenden CustomMembershipProvider) den Role Provider wie folgt in die web.config eingetragen:

ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
    <roleManager enabled="true"
                 defaultProvider="ToomaRoleProvider"
                 cacheRolesInCookie="true"
                 cookieName="aspRoles"
                 cookieTimeout="30"
                 cookiePath="/"
                 cookieRequireSSL="false"
                 cookieProtection="All"
                 >
      <providers>

        <clear/>
        <add name="ToomaRoleProviders"
             type="Tooma.Provider.ToomaWsi.ToomaRoleProvider"/>
      </providers>
    </roleManager>


Nun habe ich in dem RoleProvider die Methode Initialize gefüllt und "GetRolesForUser" wie folgt testweise implementiert:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
        public override string[] GetRolesForUser(string username)
        {
            List<string> roles = new List<string>();

            roles.Add("Guest");
            roles.Add("Admin");
            return roles.ToArray();
        }


Leider wird die Methode "GetRolesForUser" nicht ausgewertet. D.h. trage ich für eine beliebige asp.net Klasse über dem "public class"
ausblenden C#-Quelltext
1:
[PrincipalPermission(SecurityAction.Demand,Role=@"Admin")]					

ein, erhalte ich trotzdem die Security Exception:
ausblenden Quelltext
1:
System.Security.SecurityException: Request for principal permission failed.					


Wenn ich mal einen Breakpoint an jeder Methode des RoleProviders setze, sehe ich, das die Initialize methode sehr wohl läuft, aber danach gar nichts mehr. Wie kann ich dem jetzt beikommen. Ich habe so gar keine idee...

Gruss Dave