ASP.Net实现用户权限管理
2013-07-10 15:42
357 查看
[align=justify]一、 ASP.Net提供对于权限安全提供的技术[/align][align=justify]Authentication(验证) MembershipProvider (用保存的信息验证用户是 谁)[/align][align=justify]Authorization(授权) RoleProvider (实现用户和角色的映射,允许用户 可以做什么 )[/align][align=justify]
[/align][align=justify]二、 Membership Service介绍[/align][align=justify][/align][align=justify]
[/align][align=justify]Membership公开了大部分的Membership Service API, 允许执行各种任务:[/align][align=justify]创建 /更新/ 删除/找回 Membership用户。[/align][align=justify][/align][align=justify]MembershipUser 是已存在的membership 用户的一个运行时表现。允许:[/align][align=justify]更改 /重置密码[/align][align=justify][/align][align=justify]
[/align][align=justify]Membership类中的所有方法都是接受 /返回一个或者一组MembershipUser的实例[/align][align=justify]
[/align][align=justify]三、 RoleProvider介绍[/align][align=justify]
[/align][align=justify]RoleProvider提供了基于数据存储的角色管理, 可以从数据源保存或者读取角色信息。[/align][align=justify][/align][align=justify]四、场景应用[/align][align=justify]MemberShip类有多个静态方法, 比如 ValidateUser,CreateUser 等等, Asp.Net内部调用相关方法实现用户管理。[/align][align=justify]
[/align][align=justify]Roles类有多个静态方法, 比如 IsUserInRole,AddUsersToRole 等等,Asp.Net内部调用相关方法实现角色管理。[/align][align=justify]
[/align][align=justify]
[/align][align=justify]五、VS工程配置[/align][align=justify]1. 添加User和Role的配置[/align][align=justify]web.config里添加使用Provider的节点。其中CustomMembershipProvider和CustomRoleProvider是我们实现上面接口的类。[/align][align=justify]
[/align][align=justify]
[/align][align=justify] <roleManager enabled="true" defaultProvider="CustomRoleProvider">[/align][align=justify] <providers>[/align][align=justify] <clear />[/align][align=justify] <add name="CustomRoleProvider" type="UIH.PACS.AuthorizationUtility.CustomRoleProvider" applicationName="/" />[/align][align=justify] </providers>[/align][align=justify] </roleManager>[/align][align=justify]
[/align][align=justify]
[/align][align=justify]2.添加Form验证[/align][align=justify]
[/align][align=justify]二、 Membership Service介绍[/align][align=justify][/align][align=justify]
[/align][align=justify]Membership公开了大部分的Membership Service API, 允许执行各种任务:[/align][align=justify]创建 /更新/ 删除/找回 Membership用户。[/align][align=justify][/align][align=justify]MembershipUser 是已存在的membership 用户的一个运行时表现。允许:[/align][align=justify]更改 /重置密码[/align][align=justify][/align][align=justify]
[/align][align=justify]Membership类中的所有方法都是接受 /返回一个或者一组MembershipUser的实例[/align][align=justify]
[/align][align=justify]三、 RoleProvider介绍[/align][align=justify]
[/align][align=justify]RoleProvider提供了基于数据存储的角色管理, 可以从数据源保存或者读取角色信息。[/align][align=justify][/align][align=justify]四、场景应用[/align][align=justify]MemberShip类有多个静态方法, 比如 ValidateUser,CreateUser 等等, Asp.Net内部调用相关方法实现用户管理。[/align][align=justify]
[/align][align=justify]Roles类有多个静态方法, 比如 IsUserInRole,AddUsersToRole 等等,Asp.Net内部调用相关方法实现角色管理。[/align][align=justify]
[/align][align=justify]
[/align][align=justify]五、VS工程配置[/align][align=justify]1. 添加User和Role的配置[/align][align=justify]web.config里添加使用Provider的节点。其中CustomMembershipProvider和CustomRoleProvider是我们实现上面接口的类。[/align][align=justify]
[/align][align=justify]
<membership defaultProvider="CustomMembershipProvider"> <providers> <clear /> <add name="CustomMembershipProvider" type="UIH.PACS.AuthorizationUtility.CustomMembershipProvider" connectionStringName="uihrisdbEntities" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" description="Stores and retrieves membership data from the local Microsoft SQL Server database" /> </providers> </membership>[/align][align=justify]
[/align][align=justify] <roleManager enabled="true" defaultProvider="CustomRoleProvider">[/align][align=justify] <providers>[/align][align=justify] <clear />[/align][align=justify] <add name="CustomRoleProvider" type="UIH.PACS.AuthorizationUtility.CustomRoleProvider" applicationName="/" />[/align][align=justify] </providers>[/align][align=justify] </roleManager>[/align][align=justify]
[/align][align=justify]
[/align][align=justify]2.添加Form验证[/align][align=justify]
<authentication mode="Forms"> <forms loginUrl="~/Account/LogOn" defaultUrl="~/PatientAdmin/Index" timeout="2880" /> </authentication>
3.LogOn方法中的使用
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl) { if (ModelState.IsValid) { if (Membership.ValidateUser(model.UserName, model.Password)) { FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\")) { return Redirect(returnUrl); } else { FormsAuthentication.RedirectFromLoginPage(model.UserName, false); //return RedirectToAction("Index", "PatientAdmin"); } } else { ModelState.AddModelError("", "The user name or password provided is incorrect."); } } // If we got this far, something failed, redisplay form return View(model); }
4.继承AuthorizeAttribute属性, 重载bool AuthorizeCore(HttpContextBase httpContext)方法,在方法中调用权限管理的接口。[/align]本文出自 “木子纵横” 博客,请务必保留此出处http://muzizongheng.blog.51cto.com/856912/1333056
相关文章推荐
- 用户权限设计 ASP.NET系统用户权限设计与实现、用户认证管理设计方案、通用数据权限管理系统设计
- ASP.Net实现用户权限管理
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(17)-注册用户功能的细节处理(各种验证)
- ASP.NET 生成唯一不重复的订单号 支持多用户并发、持多数据库的实现参考(C#.NET通用权限管理系统组件源码组成部分)
- ASP.NET中启用Windows集成验证,怎样在调用System.DirectoryServices下的组件时传递安全上下文,也就是说当前用户凭据,来实现权限管理
- 使用用户自定义控件实现asp.net的的权限管理
- ASP.NET 菜单级别权限管理ORACLE数据库实现分析
- 仿SiteMap实现Asp.net 网站的菜单和权限管理
- ASP.NET学生信息管理系统-权限管理-用户资料
- ASP.NET系统用户权限设计与实现
- ASP.NET系统用户权限设计与实现
- YbSoftwareFactory 代码生成插件【十一】:ASP.NET WebApi MVC下组织机构管理和菜单权限管理的实现
- ASP.NET系统用户权限设计与实现
- ASP.NET MVC 企业级实战 —— 创建用户权限管理示例程序(一)
- ASP.NET系统用户权限设计与实现
- ASP.NET MVC 企业级实战 —— 创建用户权限管理范例程序(二)
- ASP.NET MVC 企业级实战 —— 创建用户权限管理范例程序(三)
- ASP.NET系统用户权限设计与实现
- ASP.NET系统用户权限设计与实现
- 浅谈ASP.NET的权限管理和用户验证