日期:2014-05-18  浏览次数:20521 次

web.config: 如何这样设置访问权限?
项目下 有三个文件夹 A,B,C  
验正方式是 Forms 验正  
我要设置他们的访问权限为,  
A,匿名可访问
B.不让匿名访问,但任何通过Form验证的角户皆可访问
C,只允许"Admin角色"的已登录用户访问,不让匿名和非“Admin角色”的已登录者访问

关键问题:
我如何修改我的web.config以实现上述目标

注:
最好只用项目根上的唯一web.config就能实现,因为子目录下设web.config的方式我一运行就错,一天没找出原因,实在想换个方式了,以后再研究它
请不要让我用WAT,那个东西也令人好晕,对文件夹设来设去总是不对,以后再研究它吧
我相信只靠编写web.config就能实现上述目标

------解决方案--------------------
web.config可以使用<location>节点配置任何文件夹的安全性的
参见
http://support.microsoft.com/kb/316871
<configuration>
<system.web>
<authentication mode="Forms" >
<forms loginUrl="login.aspx" name=".ASPNETAUTH" protection="None" path="/" timeout="20" >
</forms>
</authentication>
<authorization>
<deny users="?" /> 
</authorization>
</system.web>
<location path="A">
<system.web>
<authorization>
<allow users ="?" />
</authorization>
</system.web>
</location>
<location path="B">
<system.web>
<authorization>
<allow users ="*" />
</authorization>
</system.web>
</location>
<location path="C">
<system.web>
<authorization>
<allow roles="Admin" />
</authorization>
</system.web>
</location>
</configuration>


http://msdn.microsoft.com/zh-cn/library/b6x6shw7.aspx

------解决方案--------------------
msdn有文章:

How to: Configure Specific Directories Using Location Settings
http://msdn.microsoft.com/en-us/library/ms178692.aspx