ClaimsPrincipal.Current und HttpContext.Current.User?

9

Was ist der Unterschied zwischen diesen 2 in MVC?

Sie sehen identisch aus, und sie geben sogar den gleichen Typ / Klasse System.Web.Security.RolePrincipal zurück, aber es gibt Feinheiten.

z. Der folgende Code löst verschiedene Fehler aus, wenn er mit der Instanz aufgerufen wird, die über ClaimsPrincipal.Current

generiert wurde %Vor%

Das obige funktioniert, wenn cp dies ist:

%Vor%

Wenn ich mich durch Quickwatch zu den privaten Mitgliedern drehe, sehe ich, dass beide das gleiche Claim Dictionary haben. Aus welchem ​​Grund auch immer, das öffentliche Eigentum bläst, wenn es gegen das von ClaimsPrincipal.Current

zurückgegebene Objekt aufgerufen wird

Hilfe - warum ist das? Das macht mich verrückt.

============= EDIT ===================

Es muss fast Zeit sein, ins Bett zu gehen.

IPrincipal unterstützt mehrere Identitäten. Es erfordert eine Art von Geschäft. IIdentity gibt eine Instanz von ClaimsIdentity zurück und erfordert keine Speicherung.

Ich habe einfach die falschen Eigenschaften gebohrt. Die zwei von ihnen sind in ihrer Form fast identisch, dh. dieselben Eigenschaften und Methoden, dass ich sie verwirrt habe.

    
Alwyn 29.10.2013, 07:33
quelle

1 Antwort

8

Die Identität ist der aktuelle authentifizierte Benutzer und der Prinzipal ist der Sicherheitskontext, unter dem der Code ausgeführt wird.

Dieser Artikel ist eine gute Erklärung, die ich nützlich fand Ссылка .

    
hutchonoid 29.10.2013, 08:57
quelle