ASP.NET vNext beta 6升级后,Context.Response.SignOut不再存在

时间:2015-07-28 14:47:42

标签: c# asp.net-mvc asp.net-core asp.net-core-mvc

在ASP.NET vNext beta4下的AccountController中,我们使用以下命令注销:

Context.Response.SignOut(OpenIdConnectAuthenticationDefaults.AuthenticationScheme);
Context.Response.SignOut(CookieAuthenticationDefaults.AuthenticationType);

这很好用,用户最终会按照我们的预期登录Office 365的登录页面。

更新到beta6后,SignOut方法显示为错误。我们用下面的代替它,但注销似乎永远不会正确发生。用户立即被回到登录的主页。我已经尝试过SignOutAsync和ForbidAsync,甚至两者都在一起,但是自更新以来仍无法将用户注销。

var properties = new AuthenticationProperties
    {
        AllowRefresh = false,
        ExpiresUtc = DateTime.UtcNow.AddDays(-1),
        IsPersistent = true,
        RedirectUri = "/",
        IssuedUtc = DateTime.UtcNow
    };
await     Context.Authentication.SignOutAsync(OpenIdConnectAuthenticationDefaults.AuthenticationScheme, properties);
await Context.Authentication.SignOutAsync(CookieAuthenticationDefaults.AuthenticationType, properties);

在beta6中正确注销用户并将其重定向到Office 365登录屏幕的建议(或任何)方法是什么?

1 个答案:

答案 0 :(得分:1)

你的控制器动作的其余部分是什么?最近行为发生了变化,在调用注销而不是延迟时立即应用重定向,请参阅:Similar issue