2014-05-10 63 views
1

我的问题很简单。 我在Windows 7上有一个帐户“saqib”。我在“管理员”组中添加了此帐户。现在我的要求是,我想要“saqib”访问我的asp.net应用程序中的管理页面。我在IIS-7中启用了Windows身份验证并禁用了匿名身份验证。 我在应用程序中添加了一个包含管理页面的文件夹。我还添加了一个web.config文件到这个文件夹并添加了这些设置。为什么我的管理员组中的帐户在我只允许管理员访问后无法访问asp.net页面

<?xml version="1.0"?> 
<configuration> 
<system.web> 
    <authorization> 
    <allow roles="Administrators"/> 
    <deny users="*"/> 
    </authorization> 
</system.web> 
</configuration> 

现在,当我想通过输入用户名作为“saqib”我的密码来访问这个管理页面,我无法访问我的管理页面。为什么?

尽管我可以通过使用内置web.config文件中具有相同设置的“Administrator”帐户中构建的窗口来访问该管理页面。为什么会发生?

回答

0

请检查此tutorial on MSDN以更好地了解您的代码。
主要问题是您没有机会让您的管理员帐户认证 - 您只需拒绝最后一行中的所有用户。

所以,你必须使用<deny users="?" />,如@Dust提及,但不是代替<deny users="*" />,但所有的指令之前,像这样:

<authorization> 
    <deny users="?" /> 
    <allow roles="Administrators" /> 
    <deny users="*" /> 
</authorization> 

另外,还要确保您所提供的authentication元素设置身份验证模式,为您的应用程序,例如:

<authentication mode="Forms" > 
    <forms loginUrl="login.aspx" name=".ASPXFORMSAUTH" /> 
</authentication> 
0

它不应该是<deny users="?" />。由于您拒绝所有用户,但是管理员的角色也是用户,所以您在做什么让人感到困惑,所以它有意义,它不起作用。

+0

没有亲爱的,你是不是正确的,因为如果我们那么就意味着我们否认匿名用户,但允许所有通过验证的用户<拒绝用户= /“?”> (即提供正确我们的用户名称和密码),即使它们不属于“管理员”组。我之前已经尝试了你的建议,但我在这个评论中的结论是,我说的是。 –