MVC 5 Zugang Forderungen Identität Benutzerdaten

Ich bin die Entwicklung einer MVC 5 web-Anwendung mit Entity Framework 5 die Datenbank Zuerst Ansatz. Ich bin mit OWIN für die Authentifizierung von Benutzern. Unten zeigt meinen Login-Methode, die in meinem Konto Controller.

public ActionResult Login(LoginViewModel model, string returnUrl)
{
    if (ModelState.IsValid)
    {
        var user = _AccountService.VerifyPassword(model.UserName, model.Password, false);
        if (user != null)
        {
            var identity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, model.UserName), }, DefaultAuthenticationTypes.ApplicationCookie, ClaimTypes.Name, ClaimTypes.Role);

            identity.AddClaim(new Claim(ClaimTypes.Role, "guest"));
            identity.AddClaim(new Claim(ClaimTypes.GivenName, "A Person"));
            identity.AddClaim(new Claim(ClaimTypes.Sid, user.userID)); //OK to store userID here?

            AuthenticationManager.SignIn(new AuthenticationProperties
            {
                IsPersistent = model.RememberMe
            }, identity);

            return RedirectToAction("Index", "MyDashboard");
        }
        else
        {
            ModelState.AddModelError("", "Invalid username or password.");
        }
    }
    //If we got this far, something failed, redisplay form
    return View(model);
}

Wie Sie sehen können ich bin die Schaffung einer "ClaimsIdentity" und das hinzufügen von mehreren behauptet es zu können, dann übergabe an OWIN mit der AuthenticationManager durchzuführen, die sich anmelden.

Das problem, das ich habe ist, dass ich bin mir nicht sicher, wie Sie auf die Forderungen in den rest meiner Bewerbung, entweder im Regler oder in der Razor-Ansichten.

Hatte ich versucht den Ansatz aufgeführt, die in diesem tutorial

http://brockallen.com/2013/10/24/a-primer-on-owin-cookie-authentication-middleware-for-the-asp-net-developer/

Beispielsweise, ich habe diese in meinem Controller-code in einem Versuch, Zugriff auf die übergebenen Werte in die Forderungen, jedoch der Benutzer.Forderungen ist gleich null

var ctx = HttpContext.GetOwinContext();
ClaimsPrincipal user = ctx.Authentication.User;
IEnumerable<Claim> claims = user.Claims;

Vielleicht bin ich hier etwas fehlt.

UPDATE

Basierend auf Darin die Antwort, ich habe seinen code aber noch sehe ich nicht, den Zugang zu den Ansprüchen. Bitte siehe screenshot unten zeigt, was ich sehe, wenn schwebte über Identität.Ansprüche.

MVC 5 Zugang Forderungen Identität Benutzerdaten

InformationsquelleAutor der Frage tcode | 2014-01-28

Schreibe einen Kommentar