2015-10-25 14 views
6

Ich kann den gültigen Benutzer aus der Datenbank abrufen, erstellen Sie die ClaimsIdentity und die SignIn Methode wird ohne Fehler aufgerufen.AuthenticationManager.SignIn() ist nicht Anmelden

public ActionResult SignInConformation(SignInModel model) 
{ 
    if (ModelState.IsValid) 
    { 
     var user = _userManager.Find(model.Username, model.Password); 

     if (user == null) 
     { 
      ModelState.AddModelError("", "Invalid username and\\or password"); 
     } 
     else 
     { 
      _authenticationManager.SignOut(); 
      var claimsIdentity = _userManager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie); 
      _authenticationManager.SignIn(new AuthenticationProperties { IsPersistent = true }, claimsIdentity); 
      return RedirectToAction("Index", "Home"); 
     } 
    } 

    return View(); 
} 

Allerdings, wenn ich überprüfen, ob der Benutzer auf die Ansicht in wie folgt unterzeichnet:

<p> 
    Current User: @if (User.Identity.IsAuthenticated) 
        { 
         @User.Identity.Name 
        } 
        else 
        { 
         @:Unknown 
        } 
</p> 

IsAuthenticated kehrt false.

Antwort

7

ich fehlte die AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie aus der OWIN Startklasse:

var authenticationOptions = new CookieAuthenticationOptions 
{ 
    LoginPath = new PathString("/Account/SignIn"), 
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie 
}; 

appBuilder.UseCookieAuthentication(authenticationOptions); 

Es ist eine Schande, dass es nicht ein schöner, nützlicher Fehler ist. Ich mag keine Programme, die lautlos ausfallen.