仅限管理员用户使用管理页面
本文关键字:管理 管理员 用户 | 更新日期: 2023-09-27 17:57:42
我有一个ASP.NET网站。我想将管理文件夹限制为仅在此SQL Server表中具有"管理角色"的用户:具有列UID
、PWD
、Name
、Role
、Status
的tbl_Users_Admin
)。我希望任何用户都可以公开访问所有根页面的其余部分。
我不会使用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>