2 回答

TA貢獻(xiàn)1860條經(jīng)驗 獲得超9個贊
不完全是您所要求的,但也許這種方法會有所幫助。
我正在使用 Asp.Net Core 2.2 并在帳戶控制器中有以下 Logout() 方法。我使用身份服務(wù)并使用該路徑注銷而不是 HttpContext。對我來說,這個解決方案有效并刪除了登錄 cookie——至少在我?guī)追昼娗皺z查它時是這樣。
它與您的代碼的不同之處在于我使用的是 signInManager 對象而不是 HttpContext 對象,并且此 SignOutAsync() 不帶任何參數(shù)。
試試看,如果你喜歡,看看你會得到什么。請務(wù)必在您的 startup.cs ConfigureServices 方法中調(diào)用 AddIdentity() 或其變體。

TA貢獻(xiàn)1890條經(jīng)驗 獲得超9個贊
對于您當(dāng)前的代碼,您將MVC Controller和合并Razor Page在同一個項目中,但您沒有為MVC Controller.
首先,檢查生成的 html 的Logout表單,確保它生成如下:
<form method="post" id="logoutForm" action="/Logout/Logout">
<button type="submit">Logout</button>
<input name="__RequestVerificationToken" type="hidden" value="xxx"></form>
如果沒有,請配置您的 mvc 路由,例如
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
這是一個工作演示TestCookiesAuth
- 2 回答
- 0 關(guān)注
- 600 瀏覽
添加回答
舉報