在Global.asax.cs中
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
if(User!=null)
{
if(User.Identity.AuthenticationType=="Forms")
{
string[] roles=new string[4];
Login lg=new Login();
bool IsAdmin=false;
if(Web.Login.isAdmin)
IsAdmin=true;
roles[0]=lg.CheckRole(User.Identity.Name,IsAdmin).ToString();//获取用户角色,具体的角色名称如"HighAdmin","NormalAdmin"
HttpContext.Current.User=new System.Security.Principal.GenericPrincipal(User.Identity,roles);//指定用户的角色
}
}
}
===
web.config中
<location path="AdminManage1"><!--高级管理员文件夹路径,只允许高级管理员访问-->
<system.web>
<authorization>
<deny users="?"/>
<deny roles="HighAdmin"/>
<allow roles="NormalAdmin"/>
</authorization>
</system.web>
</location>
<location path="AdminManage2"><!--普通管理员文件夹路径,只允许普通管理员访问-->
<system.web>
<authorization>
<deny users="?"/>
<deny roles="NormalAdmin"/>
<allow roles="HighAdmin"/>
</authorization>
</system.web>
</location>
本文介绍了一种在ASP.NET应用程序中实现用户角色验证的方法。通过修改Global.asax.cs中的Application_AuthenticateRequest事件,可以为登录用户分配特定的角色,并根据这些角色限制对不同文件夹的访问权限。
760

被折叠的 条评论
为什么被折叠?



