网站用户权限管理
2007-05-31 20:34
417 查看
现在几乎所有的网站都有一套自己的权限管理来区分:游客,注册用户,管理员帐户
使用WebConfig对文件夹进行区分管理是很方便的
首先在需要进行区分的文件夹内添加WebConfig如下:
[align=left]<?xmlversion="1.0"encoding="utf-8" ?>[/align]
[align=left]<configuration>[/align]
[align=left] <system.web>[/align]
[align=left] <customErrorsmode="Off"/>[/align]
[align=left] [/align]
[align=left] <!-- security -->[/align]
[align=left] <authorization>[/align]
[align=left] <allowroles="administrator" />[/align]
[align=left] <!-- 允许所有用户 -->[/align]
[align=left] <denyusers="*"></deny>[/align]
[align=left] <!-- <allow users="[逗号分隔的用户列表]"[/align]
[align=left] roles="[逗号分隔的角色列表]"/>[/align]
[align=left] <deny users="[逗号分隔的用户列表]"[/align]
[align=left] roles="[逗号分隔的角色列表]"/>[/align]
[align=left] -->[/align]
[align=left] </authorization>[/align]
[align=left] <httpRuntimeuseFullyQualifiedRedirectUrl="true"maxRequestLength="1024000"executionTimeout="43200" />[/align]
[align=left] </system.web>[/align]
</configuration>
这样这个文件夹就只能由属于administrator用户组的用户才能登录了.
当然在用户登陆成功后要给他发一个Cookice代码如下:
[align=left]FormsAuthentication.Initialize();[/align]
[align=left] // 为了实现认证,创建一个新的票据[/align]
[align=left]FormsAuthenticationTicket ticket = new FormsAuthenticationTicket([/align]
1, // 票据版本号
this.Username.Text, // 票据持有者
DateTime.Now, //分配票据的时间
DateTime.Now.AddMinutes(30), // 失效时间
true, // 需要用户的 cookie
login, // 用户数据,这里其实就是用户的角色
FormsAuthentication.FormsCookiePath);//cookie有效路径
//使用机器码machine key加密cookie,为了安全传送
string hash = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(
FormsAuthentication.FormsCookieName, // 认证cookie的名称
hash); //加密之后的cookie
if (ticket.IsPersistent) cookie.Expires = ticket.Expiration;
//添加cookie到页面请求响应中
Response.Cookies.Add(cookie);
然后在Global.asax.cs中添加Application_AuthenticateRequest,用于获取用户权限
[align=left]protected void Application_AuthenticateRequest(Object sender, EventArgs e)[/align]
[align=left] {[/align]
[align=left] if (HttpContext.Current.User != null)[/align]
[align=left] {[/align]
[align=left] if (HttpContext.Current.User.Identity.IsAuthenticated)[/align]
[align=left] {[/align]
[align=left] if (HttpContext.Current.User.Identity is FormsIdentity)[/align]
[align=left] {[/align]
[align=left] FormsIdentity id =[/align]
[align=left] (FormsIdentity)HttpContext.Current.User.Identity;[/align]
[align=left] FormsAuthenticationTicket ticket = id.Ticket;[/align]
[align=left] [/align]
[align=left] // 取存储在票据中的用户数据,在这里其实就是用户的角色[/align]
[align=left] string userData = ticket.UserData;[/align]
[align=left] string[] roles = userData.Split(',');[/align]
[align=left] HttpContext.Current.User = new GenericPrincipal(id, roles);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
通过以上方法就可以轻松完成网站的权限管理了
使用WebConfig对文件夹进行区分管理是很方便的
首先在需要进行区分的文件夹内添加WebConfig如下:
[align=left]<?xmlversion="1.0"encoding="utf-8" ?>[/align]
[align=left]<configuration>[/align]
[align=left] <system.web>[/align]
[align=left] <customErrorsmode="Off"/>[/align]
[align=left] [/align]
[align=left] <!-- security -->[/align]
[align=left] <authorization>[/align]
[align=left] <allowroles="administrator" />[/align]
[align=left] <!-- 允许所有用户 -->[/align]
[align=left] <denyusers="*"></deny>[/align]
[align=left] <!-- <allow users="[逗号分隔的用户列表]"[/align]
[align=left] roles="[逗号分隔的角色列表]"/>[/align]
[align=left] <deny users="[逗号分隔的用户列表]"[/align]
[align=left] roles="[逗号分隔的角色列表]"/>[/align]
[align=left] -->[/align]
[align=left] </authorization>[/align]
[align=left] <httpRuntimeuseFullyQualifiedRedirectUrl="true"maxRequestLength="1024000"executionTimeout="43200" />[/align]
[align=left] </system.web>[/align]
</configuration>
这样这个文件夹就只能由属于administrator用户组的用户才能登录了.
当然在用户登陆成功后要给他发一个Cookice代码如下:
[align=left]FormsAuthentication.Initialize();[/align]
[align=left] // 为了实现认证,创建一个新的票据[/align]
[align=left]FormsAuthenticationTicket ticket = new FormsAuthenticationTicket([/align]
1, // 票据版本号
this.Username.Text, // 票据持有者
DateTime.Now, //分配票据的时间
DateTime.Now.AddMinutes(30), // 失效时间
true, // 需要用户的 cookie
login, // 用户数据,这里其实就是用户的角色
FormsAuthentication.FormsCookiePath);//cookie有效路径
//使用机器码machine key加密cookie,为了安全传送
string hash = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(
FormsAuthentication.FormsCookieName, // 认证cookie的名称
hash); //加密之后的cookie
if (ticket.IsPersistent) cookie.Expires = ticket.Expiration;
//添加cookie到页面请求响应中
Response.Cookies.Add(cookie);
然后在Global.asax.cs中添加Application_AuthenticateRequest,用于获取用户权限
[align=left]protected void Application_AuthenticateRequest(Object sender, EventArgs e)[/align]
[align=left] {[/align]
[align=left] if (HttpContext.Current.User != null)[/align]
[align=left] {[/align]
[align=left] if (HttpContext.Current.User.Identity.IsAuthenticated)[/align]
[align=left] {[/align]
[align=left] if (HttpContext.Current.User.Identity is FormsIdentity)[/align]
[align=left] {[/align]
[align=left] FormsIdentity id =[/align]
[align=left] (FormsIdentity)HttpContext.Current.User.Identity;[/align]
[align=left] FormsAuthenticationTicket ticket = id.Ticket;[/align]
[align=left] [/align]
[align=left] // 取存储在票据中的用户数据,在这里其实就是用户的角色[/align]
[align=left] string userData = ticket.UserData;[/align]
[align=left] string[] roles = userData.Split(',');[/align]
[align=left] HttpContext.Current.User = new GenericPrincipal(id, roles);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
通过以上方法就可以轻松完成网站的权限管理了
相关文章推荐
- 如何解决网站多用户权限管理
- 学习MVC之租房网站(五)-权限、角色、用户管理
- 一步步学习SPD2010--第二章节--处理SP网站(2)--管理网站用户和权限
- 使用URL参数+Controls层实现网站用户权限管理
- 一步步学习SPD2010--第二章节--处理SP网站(2)--管理网站用户和权限
- 解决JSP网站基于数据库的用户权限分配
- ABP+AdminLTE+Bootstrap Table权限管理系统第十一节--Bootstrap Table用户管理列表以及Module Zero之用户管理
- mysql 用户管理和权限设置
- Oracle用户、权限、角色管理
- 设计实现业务系统中的用户权限管理
- mongodb3 用户权限管理
- (总结)Oracle 11g常用管理命令(用户、表空间、权限)
- HDFS权限管理用户指南
- centos7用户,组及文件权限管理
- 用户权限管理
- 浅谈ASP.NET的权限管理和用户验证
- FTP服务器配置与管理(3) 用户身份验证与权限管理 推荐
- 做个网站帮用户在线保存、维护和管理他们的收藏夹
- Oracle用户,权限,角色以及登录管理
- MYSQL用户权限管理