Benutzer ist in der Rolle "admin", aber [Autorisieren (Rollen="admin")] wird nicht authentifiziert

8

Ich habe eine großartige Antwort auf SO gefunden, die beschreibt So richten Sie benutzerdefinierte Benutzerrollen ein , und ich habe das gleiche in meinem Projekt getan. Also in meinem Login-Service habe ich:

%Vor%

Und in Global.asax.cs habe ich (wörtlich von der anderen Antwort kopiert):

%Vor%

Dann habe ich in meiner Klasse ServicesController :

%Vor%

Ich melde mich als Benutzer mit der Rolle "admin" an, und das funktioniert. Dann rufe ich / services / doadminstuff - und ich bekomme Zugriff verweigert, obwohl, wenn ich einen Haltepunkt in Global.asax.cs setzen, kann ich sehen, dass meine Rollen "admin" enthalten. Wenn ich das erste Attribut Authorize (mit Rollen) auskommentiere und einfach ein plain vanilla Authorize benutze, kann ich auf den Dienst zugreifen.

Ich muss hier etwas Kritisches vermissen - aber wo soll ich anfangen?

    
Shaul Behr 15.03.2011, 16:19
quelle

2 Antworten

15

Ich würde empfehlen, dass Sie anstelle von Application_AuthenticateRequest ein benutzerdefiniertes Attribut verwenden:

%Vor%

und dann:

%Vor%

Es ist auch sehr wichtig sicherzustellen, dass bei der Anmeldung ein Authentifizierungscookie ausgegeben wird, da Sie eine XML-Datei zurückgeben. Verwenden Sie FireBug, um zu prüfen, ob der Authentifizierungscookie ordnungsgemäß gesendet wird, wenn Sie versuchen, auf die URL /services/doadminstuff zuzugreifen.

    
Darin Dimitrov 15.03.2011, 16:25
quelle
0

Ich würde zuerst die Hauptzuweisung ändern:

%Vor%

wie ASP.NET Dokumentation steht.

    
Xawery Wiśniowiecki 27.03.2015 13:58
quelle

Tags und Links