1. 成員服務
使用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類來記錄它的成員資訊。
它提供一系列靜態方法用於角色操作。(同樣,基本是見名知意)
- 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>