2016-08-01 49 views
0

使用Identity Framework創建ASP.Net應用程序。用戶身份驗證成功,System.Web.HttpContext.Current.User.IdentitynullSystem.Web.HttpContext.Current.User.Identity.IsAuthenticatedfalse登錄身份驗證後用戶爲空

public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) 
    { 
     if (!ModelState.IsValid) 
     { 
      return View(model); 
     } 
     var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: true); 
     switch (result) 
     { 
      case SignInStatus.Success: 
       ApplicationUser user = System.Web.HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.Current.User.Identity.GetUserId()); 
       UserManager.AddClaim(User.Identity.GetUserId(),new Claim(ClaimTypes.Role,"Admin")); 

後,我需要身份驗證後,一些角色添加到身份驗證的用戶。

+0

我們可以在第一次重定向後獲得用戶ID – anand

回答

4

您將在之後獲得值重定向發生。儘快重定向。它會創建cookie,然後使用User.Identity.GetUserId()User.Identity.IsAuthenticated

+0

在什麼地方(函數/類)我可以將角色分配給經過身份驗證的用戶? – Sami

+0

@Sami:你爲什麼在登錄後分配角色。它應該存儲在Db中。 –