如何解决将管理员页面限制为仅管理员用户
| 我有一个ASP.NET网站。我想将管理文件夹限制为仅此SQL Server表中具有\'Admin Role \'角色的用户:“ 0”具有列“ 1”,“ 2”,“ 3”,“ 4”,“ 5”)。我希望所有用户均可公开访问所有根目录页的其余部分。 我将不会使用ASP.NET成员资格。 仅向管理员用户提供URL(https://www.Website.com/Admin/Login.aspx)。 我在根目录和管理文件夹中都有两个Login.aspx页面。 我试图通过表单身份验证来解决它,但是我无法解决它。 很少有论坛建议创建两个不同的Web.Config文件(一个用于网站的根文件夹,另一个用于管理文件夹),但这对我来说似乎是一种低效的方法。 但是我没有成功解决其他问题。 尽管我尝试在根目录的web.config文件中使用以下命令来执行此操作: <location path=\"Admin\">
<system.web>
<authentication mode=\"Forms\">
<forms loginUrl=\"/Admin/Login.aspx\" name=\".ASPXFORMSAUTH\" defaultUrl=\"/Admin/Login.aspx\" >
</forms>
</authentication>
<authorization>
<allow roles=\"administrators\" />
<allow users=\"admin\" />
<deny users=\"?\" />
</authorization>
<sessionState mode=\"InProc\" cookieless=\"false\" timeout=\"20\">
</sessionState>
<customErrors defaultRedirect=\"~/Admin/ErrorPages/Error.aspx\" mode=\"On\">
<error statusCode=\"404\" redirect=\"~/Admin/ErrorPages/Error.aspx\" />
</customErrors>
<compilation debug=\"true\">
<codeSubDirectories>
<add directoryName=\"CSharp\"/>
<add directoryName=\"VB\"/>
</codeSubDirectories>
</compilation>
</system.web>
</location>
对于其余的根页面(公共页面):
<system.web>
For rest of the root pages (Public Pages)
</system.web>
解决方法
您无需在web.config中添加Admin文件夹。
只需在
configuration
部分的web.config
中添加以下内容。
<location path=\"Admin\">
<system.web>
<authorization>
<deny users=\"?\"/>
<allow roles=\"Admin\"/>
<deny users=\"*\"/>
</authorization>
</system.web>
</location>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。