2014-03-31 7 views
16

Ist es möglich, Ansprüche in einer Steuerung abzurufen und zu ändern, nachdem SignIn aufgerufen wurde? Dies gilt nicht für mich arbeiten:Kann ich Ansprüche in ASP.NET Identity mit OWIN nach dem Aufrufen von SignIn ändern?

ClaimsIdentity i = (ClaimsIdentity)HttpContext.GetOwinContext().Authentication.User.Identity; 
i.AddClaim(new Claim("type", "value")); 

Was ich tun muß, ist: nach der Anmeldung abgeschlossen ist und der Benutzer andere Dinge ist, sie Post ein Formulars, und ich brauche, um die Ansprüche an diesem Punkt zu ändern und leite sie auf eine andere Seite um. Ich frage mich, ob das nicht funktioniert wegen PRG und Cookies, oder nur wegen der Identität oder meines Mangels an Wissen?

Update: Ich arbeitete tatsächlich um dies durch Aufruf SignIn ein zweites Mal, das scheint zu funktionieren, aber ich würde vermuten, dass Nebenwirkungen hat, so wäre es schön zu wissen, ob es eine Möglichkeit gibt, diese zu ändern.

Antwort

10

Calling SignIn ist genau das, was Sie tun sollten, wenn Sie die Ansprüche für den Benutzer ändern möchten. Dadurch wird die ClaimsIdentity im Wesentlichen in den Cookie serialisiert. Aus diesem Grund werden die neuen Ansprüche bei nachfolgenden Anfragen angezeigt.

+4

Ich denke, es fühlt sich komisch an, SignIn zu rufen, nachdem der Benutzer sich erfolgreich angemeldet hat ... nur Semantik. Vielen Dank. – Josh

Verwandte Themen