在这里我们用的是基于表单验证的方式,来保证网站安全或业务需求。
利用asp.net提供的后台数据库及操作这个数据库的几个对象,再加上配置文件来实现网站安全的总体控制。
1、后台数据库,系统安装时把框架集成的数据库用来存储登陆用户的角色、用户信息等数据。
2、几个对象:
Membership是对后台数据库进行操作的一个对象。
Membership 常用方法
Membership.CreateUser (String, String, String, String, String, Boolean, Object, MembershipCreateStatus) | 将具有指定的属性值和唯一的标识符的新用户添加到数据存储区,并返回一个状态参数,指示该用户是否成功创建或用户创建失败的原因。 |
DeleteUser("")/GetUsers/GetUser
MembershipUser封装了用户信息/MembershipUserCollection。
Page.User属性---Page.User.Idenditity
Roles管理角色中的用户成员资格,以便在 ASP.NET 应用程序中进行授权检查。无法继承此类。
Roles常用方法:
名称 | 说明 | |
---|---|---|
AddUsersToRole | 将指定的用户添加到指定的角色中。 | |
AddUsersToRoles | 将指定的用户添加到指定的角色中。 | |
AddUserToRole | 将指定的用户添加到指定的角色中。 | |
AddUserToRoles | 将指定的用户添加到指定的角色中。 | |
CreateRole | 将新的角色添加到数据源。 | |
DeleteCookie | 删除在其中缓存角色名称的 Cookie。 | |
DeleteRole | 已重载。 从数据源移除一个角色。 | |
Equals | 已重载。 确定两个 Object 实例是否相等。 (从 Object 继承。) | |
FindUsersInRole | 获取属于指定角色的用户的列表,其中用户名包含要匹配的指定用户名。 | |
GetAllRoles | 获取应用程序的所有角色的列表。 | |
GetHashCode | 用作特定类型的哈希函数。GetHashCode 适合在哈希算法和数据结构(如哈希表)中使用。 (从 Object 继承。) | |
GetRolesForUser | 已重载。 获取一个用户所属角色的列表。 | |
GetType | 获取当前实例的 Type。 (从 Object 继承。) | |
GetUsersInRole | 获取一个用户所属角色的列表。 | |
IsUserInRole | 已重载。 获取一个指示用户是否属于指定角色的值。 | |
ReferenceEquals | 确定指定的 Object 实例是否是相同的实例。 (从 Object 继承。) | |
RemoveUserFromRole | 从指定的角色中移除指定的用户。 | |
RemoveUserFromRoles | 从指定的角色中移除指定的用户。 | |
RemoveUsersFromRole | 从指定的角色中移除指定的用户。 | |
RemoveUsersFromRoles | 移除指定角色中的指定用户名。 | |
RoleExists | 获取一个值,该值指示指定的角色名称是否已存在于角色数据源中。 | |
ToString |
3、实现方案的步骤:
A、规划网站,把网站功能模块化或者文件夹化(在项目中物理文件的存放方式)
B、利用MemberShip建立用户,利用Roles建立角色,可以参照网站文件夹的名称命名
把用户添加到角色。
C、给角色赋予权限。可以利用配置文件
4、配置文件的格式:
<configuration>
<system.web>
-----------认证方式
<authentication mode="Forms">
<forms name="CookName" loginUrl="strUrl" protection="All" timeout="60">
<credentials passwordFormat="SHA1">
<user name="aa" password="fdsd"/>
<user name="bb" password="sds"/>
</credentials>
</forms>
<system.web>
-----------认证方式
<authentication mode="Forms">
<forms name="CookName" loginUrl="strUrl" protection="All" timeout="60">
<credentials passwordFormat="SHA1">
<user name="aa" password="fdsd"/>
<user name="bb" password="sds"/>
</credentials>
</forms>
</authentication>
----------------授权
<authorization>
<allow users="*/?/username"/>
<deny users="..."/>
</authorization>
</system.web>
----------------------------把角色应用于特定目录/文件夹
<location path="folder">
<system.web>
<authorization>
<allow roles="RoleName" verbs="get/post"/>
</authorization>
</system.web>
</location>
</configuration>
----------------授权
<authorization>
<allow users="*/?/username"/>
<deny users="..."/>
</authorization>
</system.web>
----------------------------把角色应用于特定目录/文件夹
<location path="folder">
<system.web>
<authorization>
<allow roles="RoleName" verbs="get/post"/>
</authorization>
</system.web>
</location>
</configuration>