请看下面的Web.config文件片断:
<
authorization
>
< deny users = " ? " />
< allow roles = " SomeRole " />
< deny users = " * " />
</ authorization >
< deny users = " ? " />
< allow roles = " SomeRole " />
< deny users = " * " />
</ authorization >
在Windows 2003 Server 中,相应的页面谁可以访问?
一般的回答是属于Role"SomeRole"的User都可以访问。
但结果出乎我们的意料。在我的实际项目中,结果是谁都不能访问。改变一下web.config,改成如下的样式:
<
authorization
>
< deny users = " ? " />
< allow roles = " MyComputerOrDomain\SomeRole " />
< deny users = " * " />
</ authorization >
< deny users = " ? " />
< allow roles = " MyComputerOrDomain\SomeRole " />
< deny users = " * " />
</ authorization >
结果就正确了。
结论:在windows 2003 中,如果指定具体的用户或角色,则用户名或角色名应写完整,即格式为domain\user或domain\role的格式。如果服务器用户或角色为具体的不在域中的独立服务器,则domain为相应的计算机名。