我正在使用表單身份驗證的網站上工作。我感興趣的是認證系統是如何工作的,因爲當我最初打開網站中的任何頁面時,它將我重定向到登錄名,並且沒有任何控制器/操作在其中存在任何授權邏輯。ASP.NET MVC Forms身份驗證 - 它如何工作並保持身份驗證?
- 通過下面的配置,MVC或ASP.NET自動確定您是否通過身份驗證? (就像我說的,在控制器中沒有代碼來「重定向」或確保用戶被授權。
- 如果ASP.NET處理這個問題,在什麼情況下你需要授權 你的動作/控制器?即[授權]屬性)
- 如何窗體身份驗證的工作我如何 的「授權」持久化特別感興趣(即餅乾?)
網站的web.config 技術:??MVC 3,實體框架4.1(代碼優先),ASP.NET 4
<configuration>
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/Index" timeout="2880" />
</authentication>
<membership defaultProvider="CodeFirstMembershipProvider">
<providers>c
<clear />
<add name="CodeFirstMembershipProvider" type="Vanguard.AssetManager.Services.Security.MembershipService" applicationName="/" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="CodeFirstRoleProvider">
<providers>
<clear />
<add name="CodeFirstRoleProvider" type="Vanguard.AssetManager.Services.Security.RoleService" applicationName="/" />
<add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
</system.web>
<location path="Admin">
<system.web>
<authorization>
<allow roles="Admin" />
<deny users="*" />
</authorization>
</system.web>
</location>
<location path="Content/packages">
<system.web>
<authorization>
<allow roles="Admin" />
<deny users="*" />
</authorization>
</system.web>
</location>
<location path="Home">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<location path="CheckIn">
<system.web>
<authorization>
<allow roles="CheckIn, Admin" />
<deny users="*" />
</authorization>
</system.web>
</location>
<location path="Assignment">
<system.web>
<authorization>
<allow roles="Assignment, Admin" />
<deny users="*" />
</authorization>
</system.web>
</location>
<configuration>
該網站使用MVC領域,我認爲這是該部分所指的。