Asp.net MVC-5身份突然无法正常工作

时间:2015-04-20 05:26:47

标签: asp.net-mvc-5 asp.net-identity

我在Asp.Net Mvc5中开发网络。但今天我突然无法登录/使用身份/。

这是我的登录操作:

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Login(LoginViewModel input, string returnUrl)
    {
        if (ModelState.IsValid)
        {
            string personalNo = AppStaticConfig.ServiceController.PupilLogin(input.Code, input.Password, ModelState);
            if (!string.IsNullOrEmpty(personalNo))
            {
                PupilProfile pp = AppStaticConfig.ServiceController.PupilDetail(personalNo, AppStaticConfig.SchoolID, ModelState);

                var identity = new ClaimsIdentity(new[] {
                    new Claim(ClaimTypes.Name, pp.pupil.LastName.Substring(0, 1) + "." + pp.pupil.FirstName),
                    new Claim(ClaimTypes.NameIdentifier, personalNo),
                    new Claim("pupilCode", input.Code)
                },
                    DefaultAuthenticationTypes.ApplicationCookie,
                    ClaimTypes.Name, ClaimTypes.Role); 

                    identity.AddClaim(new Claim(ClaimTypes.Role, "guest"));

                    Authentication.SignIn(new AuthenticationProperties{ IsPersistent = true }, identity);

                TempData["pp"] = pp;
                return RedirectToAction("PupilProfile", "Pupil");
            }
        }

        return View(input);
    }

此处的Pupil控制器的PupilProfile操作在成功登录后重定向:

[Authorize]
public class PupilController : Controller
{
    [HttpGet]
    public ActionResult PupilProfile()
    {
        PupilProfile pp = TempData["pp"] != null ? TempData["pp"] as PupilProfile : AppStaticConfig.ServiceController.PupilDetail(User.Identity.GetUserId(), AppStaticConfig.SchoolID, ModelState);
        return View(pp);
    }
}

我认为问题是User.Identity未在Authentication.SignIn中设置。

Any1知道出了什么问题?

2 个答案:

答案 0 :(得分:2)

问题解决了。我认为是一些环境问题。

我试图解决的问题:

  1. 清除浏览器中的所有缓存Cookie。 /但没有成功/
  2. 从“导出导出菜单”
  3. 重置VS2013设置
  4. 重启OS /我的操作系统:Win8.1 /
  5. 重新启动,问题解决了。
  6. 希望它有所帮助。

答案 1 :(得分:0)

我刚刚切换到不同的浏览器,就是这样。