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

本文介绍了ASP.NET中的成员管理和角色管理服务。成员管理通过Membership类实现用户创建、删除及密码更改等功能。角色管理则通过静态方法实现角色的增删改查。文中还详细展示了如何在配置文件中设置连接字符串及启用角色管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

一些例子:

创建一个新用户

 

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

更改密码

 

None.gif if  ( this .IsValid)
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {
InBlock.gif        MembershipUser user 
= Membership.GetUser();
InBlock.gif
InBlock.gif        user.Email 
= this.TB_Email.Text;
InBlock.gif        user.Comment 
= this.TB_Comment.Text;
InBlock.gif        Membership.UpdateUser(user);
InBlock.gif
InBlock.gif        
if ((this.TB_OldPassword.Text.Length > 0&&
InBlock.gif                 (
this.TB_NewPassword.Text.Length > 0))
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            user.ChangePassword(
this.TB_OldPassword.Text,
InBlock.gif                
this.TB_NewPassword.Text);
ExpandedSubBlockEnd.gif        }

ExpandedBlockEnd.gif    }

None.gif

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

 

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

 

None.gif <? xml version="1.0" ?>
None.gif
< configuration >
None.gif
None.gif    
< connectionStrings >
None.gif          
< add  name ="LocalSqlServer"
None.gif              connectionString
="data source=127.0.0.1;Integrated Security=SSPI"   />
None.gif    
</ connectionStrings >
None.gif
None.gif    
< system .web >
None.gif        
< membership  defaultProvider ="AspNetSqlProvider"   />
None.gif        
< roleManager  enabled ="true"  defaultProvider ="AspNetSqlProvider"   />
None.gif    
</ system.web >
None.gif
</ configuration >
None.gif
None.gif

 

2.   角色管理服务

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

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

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

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

 

None.gif < configuration >
None.gif  
< system .web >
None.gif    
< roleManager  enabled ="true"   />
None.gif  
</ system.web >
None.gif
</ configuration >
None.gif
另可以在cookie中缓存角色信息,要实现这一点只需要在配置文件中做如下更改:
None.gif < configuration >
None.gif  
< system .web >
None.gif    
< roleManager  enabled ="true"  cacheRolesInCookie ="true"   />
None.gif    
<!--  其他属性以及默认值:
None.gif      cookieName=".ASPXROLES"         // Cookie 名
None.gif      cookieTimeout="30"              // Cookie 生存期
None.gif      cookiePath="/"                  // Cookie 路径
None.gif      cookieRequireSSL="false"        // 限制 cookie 使用 SSL
None.gif      cookieSlidingExpiration="true"  // 重新申请满期的Cookie
None.gif      cookieProtection="All" />       // Cookie 保护级别
None.gif    
-->
None.gif  
</ system.web >
None.gif
</ configuration >

转载于:https://www.cnblogs.com/zmsx/archive/2006/01/03/310381.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值