我稍微更改了Integrating Azure AD into an ASP.NET Core web app sample中的代碼。我可以成功運行該應用程序,並且如果單擊「登錄」鏈接,則我會正確重定向到Azure AD登錄頁面。AutomaticChallenge不適用於ASP.NET MVC Core中的CookieAuthentication和Azure AD示例
但是,如果我嘗試訪問受Authorize
屬性保護的路由,我也希望應用程序自動將我重定向到登錄頁面。我已將[Authorize]
屬性添加到HomeController
的Contact
操作中,但如果我嘗試在未登錄的情況下訪問此屬性,我不會將其重定向到登錄頁面。如果我在登錄時訪問聯繫頁面,則顯示正確。
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
AutomaticAuthenticate = true,
AutomaticChallenge = true,
LoginPath = "/Account/Login"
});
但即使有這些變化,我不重定向到登錄頁面:
如下我已經更新了Startup.cs
文件。還有什麼我失蹤?
我在我身邊做一個測試,示例工作正常,如果我添加[Authorize]屬性到控制器動作,然後調用這個動作沒有登錄,它會重定向到登錄頁面。您修改了示例代碼,您是否可以將您的代碼與您的代碼分享給我們,以便重現問題? –
您也沒有提及在未登錄時執行聯繫動作時實際發生的情況。您只是說您沒有重定向到登錄頁面。請張貼你所有的mods以及你所看到的錯誤或行爲。謝謝! –
感謝您的幫助。我找到了答案並注意到了它。僅供參考,當我遇到問題時,它表現爲頁面空白,瀏覽器在地址欄中顯示/ Home/Contact URL。此外,F12工具顯示該頁面正在獲得401未經授權的響應代碼。但是如下所述,這似乎是Microsoft.AspNetCore.Authentication.Cookies軟件包1.1.0版本中的一個更改。 – John