Asp.net MVC-5 身份突然不起作用
Asp.net MVC-5 Identity suddenly not working
我正在 Asp.Net Mvc5 中开发 Web。但是今天突然登录不了了/Using identity/.
这是我的登录操作:
[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
中设置。
任何人都知道出了什么问题吗?
问题已解决。我认为是环境问题。
我试图修复的问题:
- 清除浏览器中的所有缓存cookie。 /但是没有成功/
- 从 'Import export menu'
重置 VS2013 设置
- 重启OS /my os:Win8.1/
- 重新启动,问题已解决。
希望对大家有所帮助1。
我只是切换到不同的浏览器而已。
我正在 Asp.Net Mvc5 中开发 Web。但是今天突然登录不了了/Using identity/.
这是我的登录操作:
[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
中设置。
任何人都知道出了什么问题吗?
问题已解决。我认为是环境问题。
我试图修复的问题:
- 清除浏览器中的所有缓存cookie。 /但是没有成功/
- 从 'Import export menu' 重置 VS2013 设置
- 重启OS /my os:Win8.1/
- 重新启动,问题已解决。
希望对大家有所帮助1。
我只是切换到不同的浏览器而已。