【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理

iDotNetSpace發表於2008-06-03
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

 

一些例子:

建立一個新使用者

 

【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理MembershipCreateStatus status;
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理        MembershipUser user 
= Membership.CreateUser(this.TB_Username.Text,
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理            
this.TB_Password.Text, this.TB_Email.Text, out status);//傳出引數status中包含了建立使用者的結果資訊,可以根據這些資訊進行進一步處理.
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理

更改密碼

 

【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理if (this.IsValid)
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理    
{
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理        MembershipUser user 
= Membership.GetUser();
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理        user.Email 
= this.TB_Email.Text;
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理        user.Comment 
= this.TB_Comment.Text;
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理        Membership.UpdateUser(user);
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理        
if ((this.TB_OldPassword.Text.Length > 0&&
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理                 (
this.TB_NewPassword.Text.Length > 0))
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理        
{
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理            user.ChangePassword(
this.TB_OldPassword.Text,
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理                
this.TB_NewPassword.Text);
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理        }

【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理    }

【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理

另所有的使用者資訊可以儲存在SQL Server中或者Access中。要在SQL Server中儲存這些資訊可以使用\Microsoft.NET\Framework\下的aspnet_regsql.exe工具來生成資料庫。如下圖

資料庫生成完畢後需要在配置檔案中做如下更改:

 

【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理xml version="1.0"?>
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理
<configuration>
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理    
<connectionStrings>
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理          
<add name="LocalSqlServer"
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理              connectionString
="data source=127.0.0.1;Integrated Security=SSPI" />
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理    
connectionStrings>
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理    
<system.web>
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理        
<membership defaultProvider="AspNetSqlProvider" />
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理        
<roleManager enabled="true" defaultProvider="AspNetSqlProvider" />
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理    
system.web>
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理
configuration>
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理

 

2.   角色管理服務

  與成員管理類似,角色管理也能通過ASP.NET Web Site Administration Tool進行。與成員管理不同的是角色管理只有一個類Roles。也就是說role只是作為一個字串存在,並沒有一個role類來記錄它的成員資訊。

它提供一系列靜態方法用於角色操作。(同樣,基本是見名知意)

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

  由於角色管理預設是禁用的,所以要在配置檔案中做如下更改:

 

【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理<configuration>
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理  
<system.web>
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理    
<roleManager enabled="true" />
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理  
system.web>
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理
configuration>
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理
另可以在cookie中快取角色資訊,要實現這一點只需要在配置檔案中做如下更改:
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理<configuration>
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理  
<system.web>
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理    
<roleManager enabled="true" cacheRolesInCookie="true" />
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理    
<!-- 其他屬性以及預設值:
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理      cookieName=".ASPXROLES"         // Cookie 名
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理      cookieTimeout="30"              // Cookie 生存期
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理      cookiePath="/"                  // Cookie 路徑
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理      cookieRequireSSL="false"        // 限制 cookie 使用 SSL
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理      cookieSlidingExpiration="true"  // 重新申請滿期的Cookie
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理      cookieProtection="All" />       // Cookie 保護級別
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理    
--&gt
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理  
system.web>
【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理
configuration>

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-331001/,如需轉載,請註明出處,否則將追究法律責任。

相關文章