基于角色的窗体(Forms)验证

ASP.NET 可以根据角色判定用户是否有访问Web应用某个子目录的权限,首先要设置根目录web.config为窗体验证:<authentication mode="Forms" />

再配置子目录的web.config为:

<?xml version="1.0" encoding="utf-8"?> <configuration> <system.web> <authorization> <allow roles="meinv,shuaige" /> <deny users="*" /> </authorization> </system.web> </configuration>

 在根目录新建用于登录的Web窗体:Login.aspx,判断用户合法后转向:

FormsAuthentication.RedirectFromLoginPage(userName, false);

新建一个Global.asax文件:右键点Web项目->添加->新建项->Web->全局应用程序类:

using System.Security.Principal; public string[] GetUserRole(string userName) { return null; //实现取得角色的代码 } protected void Application_AuthenticateRequest(object sender, EventArgs e) { if (Context.Request.IsAuthenticated) { string[] userRole = GetUserRole(User.Identity.Name); Context.User = new GenericPrincipal(User.Identity, userRole); //设置角色 } }

 

注销登录:

FormsAuthentication.SignOut();

你可能感兴趣的:(基于角色的窗体(Forms)验证)