ASPNETDB 存儲過程(2) 成員資格管理部分

  1. 創建用戶成員資格。

    CREATE PROCEDURE aspnet_Membership_CreateUser
    (
     @ApplicationName nvarchar(256),
     @UserName nvarchar(256),
     @Password nvarchar(128),
     @PasswordSalt nvarchar(128),
     @Email nvarchar(256),
     @PasswordQuestion nvarchar(256),
     @PasswordAnswer nvarchar(128),
     @IsApproved bit,
     @CurrentTimeUtc datetime,
     @CreateDate datetime = NULL,
     @UniqueEmail int = 0,
     @PasswordFormat int = 0,
     @UserId uniqueidentifier OUTPUT
    )

    該過程首先調用aspnet_Applications_CreateApplication 註冊應用程序;
    然後檢查用戶表(aspnet_Users) 中是否已存在該用。如果存在,
    更新其最後活動時間(LastActivityDate 字段);
    如果不存在,就調用 aspnet_Users_CreateUser 創建一個用戶;
    最後將用戶成員資格數據添加到aspnet_Membership表中。
    返回值:成功返回0;
    調用 aspnet_Applications_CreateApplication 失敗,返回 -1;
    調用 aspnet_Users_CreateUser 失敗,返回 -1;
    如果 aspnet_Users_CreateUser 返回爲 -1 ,返回10;
    @UserId 與用戶表(aspnet_Users) 中的 UserID  不一致,返回 6;
    當用戶成員資格表(aspnet_Memberships) 中 Emai 字段值被要求唯一時,
    創建用戶成員資格導致 Email 重複,返回7;
    用戶在用戶成員資格表(aspnet_Memberships) 中已經存在,返回6;
    發生錯誤,返回-1。
  2. 更改用戶成員資格數據。

    CREATE PROCEDURE aspnet_Membership_UpdateUser
    (
     @ApplicationName nvarchar(256),
     @UserName nvarchar(256),
     @Email nvarchar(256),
     @Comment ntext,
     @IsApproved bit,
     @LastLoginDate datetime,
     @LastActivityDate datetime,
     @UniqueEmail int,
     @CurrentTimeUtc datetime
    )

    該過程先更新用戶表(aspnet_Users)中的最後活動時間(LastActivityDate) 字段;
    然後更改用戶成員資格表(aspnet_Memberships) 中的Email、備註(Comment)、
    是否啓用用戶成員資格(IsApproved)、最後登錄時間(LastLoginDate)字段。

    返回值:成功返回 0;
    用戶不存在,返回 1;
    當要求Email唯一時,@Email與其他用戶的Email重複,返回 7;
    發生錯誤,返回 -1。

  3. 更改用戶成員資格(安全)信息。

    CREATE PROCEDURE aspnet_Membership_UpdateUserInfo
    (
     @ApplicationName nvarchar(256),
     @UserName nvarchar(256),
     @IsPasswordCorrect bit,
     @UpdateLastLoginActivityDate bit,
     @MaxInvalidPasswordAttempts int,
     @PasswordAttemptWindow int,
     @CurrentTimeUtc datetime,
     @LastLoginDate datetime,
     @LastActivityDate datetime
    )

    該過程計算並設置(更改)用戶成員資格表(aspnet_Memberships) 中的有關用戶帳戶安全的字段:
    IsLockedOut、LastLockoutDate、FailedPasswordAttemptCount、
    FailedPasswordAttemptWindowStart、FailedPasswordAnswerAttemptCount、
    FailedPasswordAnswerAttemptWindowStart。

    輸入參數@UpdateLastLoginActivityDate指示是否在上述操作之前,
    先更新最後登錄時間(LastLoginDate) 字段和用戶表(aspnet_Users)中的最後活動時間(LastActivityDate) 字段。

    返回值:成功返回 0;
    用戶不存在,返回 1;
    發生錯誤,返回 -1。
  4. 更改用戶的密碼問題和密碼答案

    CREATE PROCEDURE
    aspnet_Membership_ChangePasswordQuestionAndAnswer
    (
     @ApplicationName nvarchar(256),
     @UserName nvarchar(256),
     @NewPasswordQuestion nvarchar(256),
     @NewPasswordAnswer nvarchar(128)
    )

    返回值:成功返回 0;
    失敗(用戶不存在)返回 1。

  5. 重置用戶密碼。

    CREATE PROCEDURE
    aspnet_Membership_ResetPassword
    (
     @ApplicationName nvarchar(256),
     @UserName nvarchar(256),
     @NewPassword nvarchar(128),
     @MaxInvalidPasswordAttempts int,
     @PasswordAttemptWindow int,
     @PasswordSalt nvarchar(128),
     @CurrentTimeUtc datetime,
     @PasswordFormat int  = 0,
     @PasswordAnswer nvarchar(128) = NULL
    )

    該過程更改用戶密碼及其相關字段,
    然後計算並設置有關用戶帳戶安全的字段
    (參見 aspnet_Membership_UpdateUserInfo )。

    返回值:成功返回 0;
    用戶不存在,返回 1;
    用戶被鎖定,返回 99;
    密碼問題答案不準確,返回 3;
    發生錯誤,返回-1。

  6. 設置用戶密碼。

    CREATE PROCEDURE aspnet_Membership_SetPassword
    (
     @ApplicationName nvarchar(256),
     @UserName nvarchar(256),
     @NewPassword nvarchar(128),
     @PasswordSalt nvarchar(128),
     @CurrentTimeUtc datetime,
     @PasswordFormat int = 0
    )

    返回值:成功返回 0;
    用戶不存在,返回 1;

  7. 解除用戶鎖定

    CREATE PROCEDURE aspnet_Membership_UnlockUser
    (
     @ApplicationName nvarchar(256),
     @UserName nvarchar(256)
    )

    返回值:成功返回 0;
    用戶不存在,返回 1。
  8. (LIKE)查詢 Email 與 @EmailToMatch 匹配的用戶成員資格數據,返回分頁用戶數據集。

    CREATE PROCEDURE
    aspnet_Membership_FindUsersByEmail
    (
     @ApplicationName nvarchar(256),
     @EmailToMatch nvarchar(256),
     @PageIndex int,
     @PageSize int
    )

    返回值:所有滿足條件的行數。
  9. (LIKE)查詢用戶名與@UserNameToMatch匹配的用戶成員資格數據,返回分頁用戶數據集。

    CREATE PROCEDURE
    aspnet_Membership_FindUsersByName
    (
     @ApplicationName nvarchar(256),
     @UserNameToMatch nvarchar(256),
     @PageIndex int,
     @PageSize int
    )

    返回值:所有滿足條件的行數。
  10. 返回分頁(所有)用戶成員資格數據集。

    CREATE PROCEDURE
    aspnet_Membership_GetAllUsers
    (
     @ApplicationName nvarchar(256),
     @PageIndex int,
     @PageSize int
    )

    返回值:所有滿足條件的行數。
  11. 根據Email查詢用戶成員資格數據,返回用戶數據集(一行)。

    CREATE PROCEDURE
    aspnet_Membership_GetUserByEmail
    (
     @ApplicationName nvarchar(256),
     @Email nvarchar(256)
    )

    返回值:成功返回 0;
    用戶不存在,返回 1。
  12. 根據用戶名查詢用戶成員資格數據,返回用戶數據集(一行)。

    CREATE PROCEDURE
    aspnet_Membership_GetUserByName
    (
     @ApplicationName nvarchar(256),
     @UserName nvarchar(256),
     @CurrentTimeUtc datetime,
     @UpdateLastActivity bit = 0
    )

    輸入參數@UpdateLastActivity指定是否更新用戶表(aspnet_Users)中的最後活動時間(LastActivityDate)字段。

    返回值:成功返回 0;
    用戶不存在,返回 -1。
  13. 根據用戶ID查詢用戶用戶成員資格數據,返回用戶數據集(一行)。

    CREATE PROCEDURE aspnet_Membership_GetUserByUserId
    (
     @UserId uniqueidentifier ,
     @CurrentTimeUtc datetime,
     @UpdateLastActivity bit = 0
    )

    輸入參數@UpdateLastActivity指定是否更新用戶表(aspnet_Users)中的最後活動時間(LastActivityDate)字段。

    返回值:成功返回 0;
    用戶不存在,返回 -1。
  14. 查詢用戶的密碼和存儲密碼的格式,返回包含用戶密碼和密碼存儲格式兩個字段的數據據集(一行)。

    CREATE PROCEDURE
    aspnet_Membership_GetPassword
    (
     @ApplicationName nvarchar(256),
     @UserName nvarchar(256),
     @MaxInvalidPasswordAttempts int,
     @PasswordAttemptWindow int,
     @CurrentTimeUtc datetime,
     @PasswordAnswer nvarchar(128) = NULL
    )

    如果密碼問題答案不準確,需計算並設置有關用戶帳戶安全的字段。
    (參見 aspnet_Membership_UpdateUserInfo )。

    返回值:成功返回 0;
    用戶不存在,返回 1;
    用戶被鎖定,返回 99;
    密碼問題答案不準確,返回 3;
    發生錯誤,返回 -1。
  15. 查詢有關用戶密碼的詳細信息,返回用戶帳戶信息數據集(一行)。

    CREATE PROCEDURE aspnet_Membership_GetPasswordWithFormat
    (
     @ApplicationName nvarchar(256),
     @UserName nvarchar(256),
     @UpdateLastLoginActivityDate bit,
     @CurrentTimeUtc datetime
    )

    輸入參數@UpdateLastLoginActivityDate指示是否更新最後登錄時間(LastLoginDate) 字段
    和用戶表(aspnet_Users)中的最後活動時間(LastActivityDate) 字段。

    返回值:成功返回 0;
    用戶不存在,返回 1;
    用戶被鎖定,返回 99。
  16. 獲取在線用戶數。

    CREATE PROCEDURE
    aspnet_Membership_GetNumberOfUsersOnline
    (
     @ApplicationName nvarchar(256),
     @MinutesSinceLastInActive int,
     @CurrentTimeUtc datetime
    )

    最近@MinutesSinceLastInActive分鐘內登錄的用戶爲在線用戶,
    即滿足 LastActivityDate(datetime) >= @CurrentTimeUtc(datetime) - @MinutesSinceLastInActive(分鐘數)的條件。

    返回值:返回在線用戶數 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章