为什么我的管理员组帐户在我只允许管理员访问后无法访问asp.net页面

时间:2014-05-10 05:51:21

标签: asp.net web-config windows-authentication administrator

我的问题非常简单。 我有一个帐户" saqib"在Windows 7上我已经在" Administrators"中添加了这个帐户。组。现在我的要求是我想要" saqib"访问我的asp.net应用程序中的管理页面。我在IIS-7中启用了Windows身份验证并禁用了匿名身份验证。 我在我的应用程序中添加了一个带有管理页面的文件夹。我还在此文件夹中添加了一个web.config文件并添加了这些设置。

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

现在当我想通过输入用户名作为&#34; saqib&#34;来访问此管理页面时和我的密码,我无法访问我的管理页面。为什么???

虽然我可以使用内置的&#34;管理员&#34;来访问该管理页面。帐户在web.config文件中具有相同的设置。为什么会发生这种情况?

3 个答案:

答案 0 :(得分:0)

不应该是<deny users="?" />。这会让您感到困惑,因为您拒绝所有用户,但管理员的角色也是用户,因此它无法正常运行。

答案 1 :(得分:0)

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

所以你必须像@Dust提到的那样使用<deny users="?" />,而不是<deny users="*" />而不是<authorization> <deny users="?" /> <allow roles="Administrators" /> <deny users="*" /> </authorization> ,而是在所有指令之前,如下所示:

authentication

另外,请确保您已为应用程序设置了<authentication mode="Forms" > <forms loginUrl="login.aspx" name=".ASPXFORMSAUTH" /> </authentication> 元素以设置身份验证模式,例如:

{{1}}

答案 2 :(得分:0)

问题出在Windows UAC上。即使已登录帐户是admin,UAC也会阻止admin特权,这就是为什么您在安装某些软件并需要提升权限到admin时以弹出窗口的身份,并以普通用户身份运行admin用户。

在解决相同问题的同时,我在stackoverflow中找到了一些解决方法,但从未在web.config中使它正常工作。 In .NET/C# test if process has administrative privileges