我正在寻找创建一个web.config文件,我对哪个标签的顺序感到有点困惑。我有两个角色:测试人员和预览员。
以下是我要做的事情:
1)使用带有URL“Login.aspx”的表单authentification标签
2)使用location标记表示目录/ AppPages和/ AppServices只能供测试人员访问(即deny *,?,预览器和仅允许认证的测试人员,否认其他人)
3)使用位置标记表示目录/脚本和/样式只能供测试人员和预览人员访问并拒绝其他人
4)如何制作,以便所有试图查看/ AppPages或/ AppServices页面的预览者都被重新路由到自定义页面。
我有以下web.config文件:
<system.web>
<connectionStrings>
...............
</connectionStrings>
<roleManager enabled="true"/>
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH">
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
<location path="AppPages"> //same for AppServices
<system.web>
<authorization>
<deny users="*" />
<deny users="?"/>
<allow roles="tester" />
<deny roles="previewers" />
</authorization>
</system.web
</location>
<location path="Scripts"> //same for Styles
<system.web>
<authorization>
<allow roles="previewers" />
<allow roles="tester" />
<deny users="?"/>
</authorization>
</system.web>
</location>
</system.web>
我要做的是将所有用户重定向到预览页面,如果用户以测试人员身份登录,那么他将能够转到应用页面,而预览者则不会。
感谢您的建议。
答案 0 :(得分:2)
关于不同的登录页面...据我所知,在asp.net中没有直接简单的方法来实现它。你可以采取各种途径来实现它:-)这里有一个概述的帖子一个相当简单的解决方案.. http://forums.asp.net/t/1348477.aspx
就授权规则而言,它有点像带有中断的switch语句。当访问站点时应用于当前用户状态的第一个规则是应用的,并且它将停止处理...例如此
<deny users="*" />
<deny users="?"/>
<allow roles="tester" />
<deny roles="previewers" />
应该去
<deny users="?"/>
<allow roles="tester" />
<deny users="*" />
否则,无论如何,第一行都会拒绝所有人。