Ich versuche, Rollen für meine Formularauthentifizierung zu verwenden, ich habe die global.asax Application_AuthenticateRequest-Methode erhalten die Rollen aus dem Cookie, das funktioniert gut. Aber ich weiß nicht welchen Provider in Web.Config zu konfigurieren ist. Ich möchte keinen SQL-Server verwenden, nur den Cookie.ASP.NET MVC3 Rollenauthentifizierung mit Cookie und keine SQL?
diese Linie erzeugt die IPrincipal: (Rollen ist ein String-Array mit den Rollen)
Context.User = new GenericPrincipal(Context.User.Identity, roles);
Das Endziel ist DataAnnotations wie [autorisieren (Roles = "Admin")] und der IsInRole Methode zum Laufen zu bringen .
Auch die IsInRole-Methode funktioniert gut, wenn sie in der global.asax verwendet wird, aber nicht an anderer Stelle. Warum nicht?
Web.config wird als solches konfiguriert ist, um jetzt:
<roleManager defaultProvider="DefaultRoleProvider" cacheRolesInCookie="true">
und die default ist leider zu einem gewissen Leer SQL-DB für keinen wirklichen Grund, verbunden.
Ist das überhaupt möglich?
Danke.
Getting die Rollen aus dem Cookie hier den Code aus der zweiten Antwort mit: http://stackoverflow.com/questions/1385042/asp-net-mvc-forms-authentication-authorize-attribute-simple-roles – Michael
Es wurde ein Fehler im Visual Studio oder etwas verursacht das Problem verursacht. Der Code aus dem Post, den ich oben erwähnt habe, funktioniert so wie er ist, wenn an der Webanwendung nichts falsch ist. – Michael