Ich versuche, die gleiche Authentifizierung zwischen den MVC-Controllern und den Web-API-Controllern zu verwenden. Die Web-API befindet sich im selben Projekt, nur in einem Ordner/Controllers/API /.Owin-Authentifizierung in MVC und Web Api
Ich kann nicht herausfinden, wie man sich mit OWIN authentifizieren kann, wenn ich mich über MVC anmeldete und einen Anspruch und ein Cookie wie im folgenden Beispiel erstellte.
var identity = new ClaimsIdentity(new[]
{
new Claim(ClaimTypes.Name,"Admin"),
new Claim(ClaimTypes.Role,"Administrator")
, "ApplicationCookie");
var ctx = Request.GetOwinContext();
var authManager = ctx.Authentication;
authManager.SignIn(identity);
return RedirectToAction("Index", "Home", null);
}
Alles funktioniert in den MVC-Controller in Ordnung, aber ich kann das [autorisiert (Roles = „Administrator“] -Attribut auf meinen Web-API-Controller und habe es korrekt funktioniert nicht verwenden. Es hat mich immer durchlässt unabhängig.
Dank
EDIT: Nur so, wie ich habe in der Lage gewesen, die IPrincipal eine statische Klasse und Eigenschaftsspeicher mit dies zu bekämpfen, und dann, wenn das Attribut Autorisieren Aufschalten, suchen Sie nach dieser Eigenschaft und überprüfen, ob die Rolle gibt es Auf diese Art. Welcher bin nicht sicher, ob das eine gute Idee ist oder nicht?
Können Sie meine Antwort überprüfen? –