zoukankan      html  css  js  c++  java
  • ASP.NET 2.0中的成员管理与角色管理

    转自http://www.cnblogs.com/zmsx/archive/2006/01/03/310381.html

    ASP.NET 2.0中的成员管理与角色管理

    1.         成员服务

      使用ASP.NET Web Site Administration Tool创建配置网站的权限信息。该工具在http://localhost/<项目名>/webadmin.axd,通过配置,该工具将直接生成一个web.config的文件用于存贮成员信息。



    asp.net2.0中也提供了两个类用于成员管理,这两个类是MembershipMembershipUser,他们位于System.Web.Security命名空间下。其中前者包含一系列静态方法,用于创建,删除,更改,验证等操作。后者是一个描述单一用户的登陆信息的类,每一个实例就是一个用户登陆信息的集合。

    Membership的一些方法:(基本可以见名知意)

    •        CreateUser
    •        DeleteUser
    •        GeneratePassword
    •        GetAllUser
    •        GetUser
    •        UpdateUser
    •        ValidateUser

    MembershipUser的一些方法:

    •        ChangePassword
    •        ChangePasswordQuestionAndAnswer
    •        GetPassword
    •        ResetPassword

    MembershipUser的一些属性:(基本可以见名知意)

    •        Comment(用于存储用户自定义数据)
    •        CreationDate
    •        Email
    •        LastLoginDate
    •        LastPasswordChangedDate
    •        UserId
    •        UserName

     

    一些例子:

    创建一个新用户

     

    MembershipCreateStatus status;
            MembershipUser user 
    = Membership.CreateUser(this.TB_Username.Text,
                
    this.TB_Password.Text, this.TB_Email.Text, out status);//传出参数status中包含了创建用户的结果信息,可以根据这些信息进行进一步处理.

    更改密码

    if (this.IsValid)
        
    {
            MembershipUser user 
    = Membership.GetUser();

            user.Email 
    = this.TB_Email.Text;
            user.Comment 
    = this.TB_Comment.Text;
            Membership.UpdateUser(user);

            
    if ((this.TB_OldPassword.Text.Length > 0&&
                     (
    this.TB_NewPassword.Text.Length > 0))
            
    {
                user.ChangePassword(
    this.TB_OldPassword.Text,
                    
    this.TB_NewPassword.Text);
            }

        }

    另所有的用户信息可以存储在SQL Server中或者Access中。要在SQL Server中存储这些信息可以使用<windir>\Microsoft.NET\Framework\<version>下的aspnet_regsql.exe工具来生成数据库。如下图

     

    数据库生成完毕后需要在配置文件中做如下更改:

     

    <?xml version="1.0"?>
    <configuration>

        
    <connectionStrings>
              
    <add name="LocalSqlServer"
                  connectionString
    ="data source=127.0.0.1;Integrated Security=SSPI" />
        
    </connectionStrings>

        
    <system.web>
            
    <membership defaultProvider="AspNetSqlProvider" />
            
    <roleManager enabled="true" defaultProvider="AspNetSqlProvider" />
        
    </system.web>
    </configuration>

     

    2.   角色管理服务

      与成员管理类似,角色管理也能通过ASP.NET Web Site Administration Tool进行。与成员管理不同的是角色管理只有一个类Roles。也就是说role只是作为一个字符串存在,并没有一个role类来记录它的成员信息。

    它提供一系列静态方法用于角色操作。(同样,基本是见名知意)

      • AddUserToRole
      • CreateRole
      • DeleteRole
      • GetRolesForUser
      • GetUsersInRole
      • IsUserInRole
      • RemoveUserFromRole

      由于角色管理缺省是禁用的,所以要在配置文件中做如下更改:

     

    <configuration>
      
    <system.web>
        
    <roleManager enabled="true" />
      
    </system.web>
    </configuration>
    另可以在cookie中缓存角色信息,要实现这一点只需要在配置文件中做如下更改:
    <configuration>
      
    <system.web>
        
    <roleManager enabled="true" cacheRolesInCookie="true" />
        
    <!-- 其他属性以及默认值:
          cookieName=".ASPXROLES"         // Cookie 名
          cookieTimeout="30"              // Cookie 生存期
          cookiePath="/"                  // Cookie 路径
          cookieRequireSSL="false"        // 限制 cookie 使用 SSL
          cookieSlidingExpiration="true"  // 重新申请满期的Cookie
          cookieProtection="All" />       // Cookie 保护级别
        
    -->
      
    </system.web>
    </configuration>
  • 相关阅读:
    论文尾注后无法插入分节符
    实现java对象排序的三种方式
    java数组的定义方式
    Canvas
    正则xss
    mongoDB学习记录
    查找,学习,记录
    地址
    node实战学习纪录
    nodejs学习记录
  • 原文地址:https://www.cnblogs.com/jinzhao/p/831912.html
Copyright © 2011-2022 走看看