您的位置:首页 > 编程语言 > ASP

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

2006-10-11 09:05 204 查看
1. 另可以在cookie中缓存角色信息,要实现这一点只需要在配置文件中做如下更改:
成员服务



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

在asp.net2.0中也提供了两个类用于成员管理,这两个类是Membership和MembershipUser,他们位于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类来记录它的成员信息。

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

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




<configuration>


<system.web>


<roleManager enabled="true" />


</system.web>


</configuration>






AddUserToRole

CreateRole

DeleteRole

GetRolesForUser

GetUsersInRole

IsUserInRole

RemoveUserFromRole






<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>


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1311705
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: