Asp.net 如何通过WebSecurity.ChangePassword()防止用户注销
我试图让用户在设置中更改密码。在ajax页面中,我使用了Asp.net 如何通过WebSecurity.ChangePassword()防止用户注销,asp.net,Asp.net,我试图让用户在设置中更改密码。在ajax页面中,我使用了 WebSecurity.Logout(); 所以我认为注销是因为这个代码。但是我注意到用户注销了,即使在密码更改成功后这行代码不存在。所以我试着用谷歌搜索它。在很多地方,我发现这段代码删除了缓存和cookie,因此用户被注销 我的问题:有没有办法阻止用户注销?或者我可以保存Cookie或缓存,以便用户在密码更改成功后仍然登录。您应该使用WebSecurity.ChangePassword,这将使用所有新凭据续订当前Cookie,然后将其
WebSecurity.Logout();
所以我认为注销是因为这个代码。但是我注意到用户注销了,即使在密码更改成功后这行代码不存在。所以我试着用谷歌搜索它。在很多地方,我发现这段代码删除了缓存和cookie,因此用户被注销
我的问题:有没有办法阻止用户注销?或者我可以保存Cookie或缓存,以便用户在密码更改成功后仍然登录。您应该使用
WebSecurity.ChangePassword
,这将使用所有新凭据续订当前Cookie,然后将其发送回响应
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Manage(ChangePassward model)
{
bool changePasswordSucceeded = false;
try
{
changePasswordSucceeded = WebSecurity.ChangePassword(User.Identity.Name, model.OldPassword, model.NewPassword);
}
catch (Exception)
{
changePasswordSucceeded = false;
}
if (changePasswordSucceeded)
{
return RedirectToAction("Some Page here", new { Message = "Success" });
}
else
{
ModelState.AddModelError("", "The current password is incorrect or the new password is invalid.");
}
}
这是一个老生常谈的问题,很抱歉让它复活了,但对于其他面临这个问题的人:
您已经在此方法中拥有了他们的用户名和密码。重新登录。没错!但这也会让用户注销。我不想这样。我希望他保持活跃,即使他的密码已被更改!还有,这个是
MVC
我想要ASP.NET网页/Razor
。不过,感谢您的时间和帮助!:)