ASPNETDB 存储过程(2) 成员资格管理部分

来源:互联网 发布:ubuntu 界面登录不了 编辑:程序博客网 时间:2024/05/14 14:42
  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(分钟数)的条件。

    返回值:返回在线用户数