con*_*att 9 asp.net security forms-authentication asp.net-mvc-3
我正在使用表单身份验证的网站上工作.我对身份验证系统的运行方式感兴趣,因为当我最初在网站中打开任何页面时,它会将我重定向到登录,并且没有任何控制器/操作在其中放置任何授权逻辑.
网站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>
Run Code Online (Sandbox Code Playgroud)
该站点使用MVC区域,我认为这是该部分所指的.
通过下面的配置,MVC或ASP.NET是否自动确定您是否经过身份验证?(就像我说的,控制器中没有代码可以"重定向"或确保用户已获得授权.
是的,它使用<location>
web.config中的部分仅允许具有Admin角色的用户访问该/Admin/*
路径.
如果ASP.NET处理此问题,您需要在什么情况下授权您的操作/控制器?(即[授权]属性)
在ASP.NET MVC中,使用该[Authorize]
属性是控制哪些操作需要授权而不是<location>
像在web.config中那样使用标记的首选方法.这样做的原因是ASP.NET MVC使用路由,你不应该在你的web.config中硬编码路径,这是该<location>
部分发生的事情.因此,始终使用该[Authorize]
属性来装饰需要身份验证的控制器/操作.
表单身份验证如何工作?我对"授权"如何持久感兴趣?(即饼干??)
饼干,是的.您还可以查看MSDN上的以下文章,其中解释了表单身份验证的工作原理.
归档时间: |
|
查看次数: |
5416 次 |
最近记录: |