【发布时间】:2016-04-27 11:52:03
【问题描述】:
我确实有一个带有自定义角色和用户存储的 Asp.Net MVC 应用程序(版本 6.0.0-rc1-final)。经过一番struggling 我终于可以创建一个有效的登录机制。但是,我现在确实很难创建一个干净的注销。我在控制器中的注销代码当前如下所示:
public async Task<ActionResult> Logout()
{
if (User.Identity.IsAuthenticated)
{
await SignInManager.SignOutAsync();
}
return RedirectToAction("Index", "App");
}
这段代码的问题是,一个cookie没有被删除:.AspNet.Microsoft.AspNet.Identity.Application
只要我不手动删除 cookie,应用程序就会处于脏状态并引发空指针异常,因为 User.Identity 为空。
我找到了描述类似情况的question on stackoverflow。但是那里的解决方案不适合我,因为我使用的 MVC 6 不再具有 System.Web。
我也有一个可以正常工作的示例解决方案。在此解决方案中,从未创建过提到的 cookie。也许正确的解决方案不是在注销后删除 cookie,而是以某种方式阻止 cookie 的创建。
【问题讨论】:
-
@Maxisam,您在此期间找到解决方案了吗?
-
不,但就像我说的那样,这并不重要。这似乎与身份验证数据无关。
标签: c# asp.net asp.net-mvc cookies asp.net-identity