asp.net2.0安全性(1)--用户角色篇(起篇)

安全管理的解决方案在.net1.1中几乎为一片空白,对于应用程序的验证与授权大部分的工作是开发人员自己编写代码,或者是借助企业库等工具来实现,此可谓.net1.1中的一大缺憾。在.net2.0中微软为我们提供了一系列的API类和控件,大大简化了我们在此方面的工作量。

下面我将推出一系列的随笔介绍asp.net2.0的安全系统。

 

Asp.net2.0中提供了一系列的控件实现验证与授权中的各种功能,这些控件我将在以后讲述。但喜欢思考的朋友们可能会问:这些控件是怎样实现了这一系列的功能呢?答案是:通过微软的API类来实现的。若你只会使用控件不学习API类的话那你就领略不到它精髓,在将来的开发过程中难以将它的功能发挥的淋漓尽致。下面我们选进入用户与角色的API学习。

 

 

 

连接字符串

<connectionStrings>

<add name="MySqlConnection" connectionString="Data Source=MySqlServer;Initial Catalog=aspnetdb;Integrated Security=SSPI;" />

</connectionStrings>

配置SqlMembershipProvider

<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">

    <providers>

      <clear />

      <add

        name="SqlProvider"

        type="System.Web.Security.SqlMembershipProvider"

        connectionStringName="MySqlConnection"

        applicationName="MyApplication"

        enablePasswordRetrieval="false"

        enablePasswordReset="true"

        requiresQuestionAndAnswer="true"

        requiresUniqueEmail="true"

        passwordFormat="Hashed" />

    </providers>

</membership>

配置roleManager

<roleManager enabled="true" cacheRolesInCookie="true">
             <providers>
                 <clear/>
                 <add connectionStringName="MySqlConnection" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
             </providers>
         </roleManager>

用户角色篇(类)

MembershipMembershipUserRoles

 

用户与角色管理在asp.net2.0中是通过MembershipRoles两个类来实现的。

Membership:用户成员账号管理,用户名、密码、邮箱等

Roles:负责用户和群组之间关系管理。

l         Membership类:

主要是创建用户帐号、验证用户身份和管理用户设置

属性:

1)        EnablePasswordReset:获取一个值,以指示是否可以重置密码。

2)        EnablePasswordRetrieval:获取一个值,以指示是否允许用户提取密码。

3)        HashAlgorithmType:获取一个值,密码的算法识别项

4)        MaxInvalidPasswordAttempts:获取一个值,锁定用户之间所允许的重试次数。

5)        MinRequiredNonAlphanumericCharacters:获取一个值,密码中最少的特殊字符数。

6)        MinRequiredPasswordLength:取得最小密码的长度

7)        RequiresQuestionAndAnswer:获取一个值,指示是否要求用户解答密码问题以重新提取密码。

8)        UserIsOnlineTimeWindow:指定用户最后活动日期之后的分钟数,其间的用户视为在线。

方法:

1)        CreateUser():创建新的用户

2)        DeleteUser():从数据库删除用户

3)        GetUser():取得成员资格用户的信息

4)        UpdateUser():更新用户信息

5)        ValidateUser():验证用户账号与密码是否用效

6)        GetAllUsers():取得数据库中用户的集合

7)        FindUsersByEmail():根据email查询用户

8)        FinndUsersByName():根据帐号名称查询用户

9)        GetNumberOfUsersOnline():取得目前访问程序的在线用户

10)     GetUserNameByEmail():根据邮箱查询用户名

l         MembershipUser

负责管理与更新Membership表中的相关资料。别把MembershipUser类与Membership类混了,实际上是同MembershipUser处理完成后交由Membership处理。如:

1)        取得或设置用户相关信息。如UserName,Email和帐号创建时间。

2)        读取、改变用户密码

3)        改变密码提示问题与答案

4)        解锁帐号

5)        设置是否允许用户能够被验证

属性:

1)        CreationDate:取得用户的创建时间

2)        Email:取得或设置用户的电子邮件地址

3)        IsApproved:取得或设置用户是否可以进行验证

4)        IsLockedOut:取出用户是否被锁定

5)        IsOnLine:指出用户目前是否在线

6)        LastActivityDate:取得或设置用户最后一次验证或访问程序的日期时间

7)        LastLoclkoutDate:取是最近锁定用户的日期和时间

8)        LastLoginDate:取得或设置用户上一次验证的日期时间

9)        LastPasswordChangedDate:取得用户密码上一次更新的时间

10)     PasswordQuestion:取得用户的安全密码的问题

11)     UserName:取得用户登录的名称

12)     方法:

13)     ChangePassword():更改用户密码

14)     ChangePasswordQuestionAndAnswer:更改用户的密码安全问题和解答

15)     GetPassword():取得用户密码

16)     ResetPassword():将用户的密码重置,并自动产生新密码

17)     UnlockUser():解除帐号锁定,以便能进行身份验证

 

l         Roles

方法:

1)        AddUsersToRole():将多个用户加入一个角色

2)        AddUsersToRoles():将多个用户加入多个角色

3)        AddUserToRole():将一个用户加入一个角色

4)        AddUserToRoles():将一个用户加入多个角色

5)        CreateRole():创建角色

6)        DeleteRole():删除角色

7)        FindUsersInRole():寻找某个角色中的所有用户

8)        GetAllRoles():取得所有角色的清单

9)        GetRolesForUser():取得用户所属角色的清单

10)     IsUserInRole():指出用户是否在指定的角色中

11)     RemoveUserFromRole():从一个角色中移除一个用户

12)     RemoveUserFromRoles():从多个角色中移出一个用户

13)     RemoveUsersFromRole():从一个角色中移除多个用户

14)     RemoveUsersFromRoles():从多个角色中移除多个用户名

15)     RoleExists():用户角色名是否已存在于角色表中。

你可能感兴趣的:(asp.net)