情境
使用 Owin Startup Class 做到如果沒有經過驗證就會導到特定的頁面功能。
測試的時候卻遇到找不到「 /login.aspx 」的現象。
觀察
先檢查「Startup.cs」、「Startup.Auth.cs」檢查是否有放「OwinStartup Attribute」
1 | [ ] |
1 | public partial class Startup { |
看起來「Startup.cs」、「Startup.Auth.cs」都沒問題! 所以到底是什麼原因讓它一直在尋找「 /login.aspx 」
最後,在 MVC5 - ASP.NET Identity登录原理 - Claims-based认证和OWIN 看到一段文字。
… VS还自动帮我们移除了FormsAuthenticationModule …
找了一下資料,在這篇 Forms Authentication Configuration and Advanced Topics (C#) 說明了:
loginUrl - The URL of the login page. The default value is login.aspx.
看起來是找到原因了!
解決
在 「 Web.config 」把「 FormsAuthenticationModule 」移掉!1
2
3
4
5
6<system.webServer>
<modules>
<remove name="FormsAuthentication" />
<remove name="FormsAuthenticationModule" />
</modules>
</system.webServer>