-
创建用户成员资格。
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。
-
更改用户成员资格数据。
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。
-
更改用户成员资格(安全)信息。
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。
-
更改用户的密码问题和密码答案
CREATE PROCEDURE aspnet_Membership_ChangePasswordQuestionAndAnswer
(
@ApplicationName nvarchar(256),
@UserName nvarchar(256),
@NewPasswordQuestion nvarchar(256),
@NewPasswordAnswer nvarchar(128)
)
返回值:成功返回 0;
失败(用户不存在)返回 1。
-
重置用户密码。
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。
-
设置用户密码。
CREATE PROCEDURE aspnet_Membership_SetPassword
(
@ApplicationName nvarchar(256),
@UserName nvarchar(256),
@NewPassword nvarchar(128),
@PasswordSalt nvarchar(128),
@CurrentTimeUtc datetime,
@PasswordFormat int = 0
)
返回值:成功返回 0;
用户不存在,返回 1;
-
解除用户锁定
CREATE PROCEDURE aspnet_Membership_UnlockUser
(
@ApplicationName nvarchar(256),
@UserName nvarchar(256)
)
返回值:成功返回 0;
用户不存在,返回 1。
-
(LIKE)查询 Email 与 @EmailToMatch 匹配的用户成员资格数据,返回分页用户数据集。
CREATE PROCEDURE aspnet_Membership_FindUsersByEmail
(
@ApplicationName nvarchar(256),
@EmailToMatch nvarchar(256),
@PageIndex int,
@PageSize int
)
返回值:所有满足条件的行数。
-
(LIKE)查询用户名与@UserNameToMatch匹配的用户成员资格数据,返回分页用户数据集。
CREATE PROCEDURE aspnet_Membership_FindUsersByName
(
@ApplicationName nvarchar(256),
@UserNameToMatch nvarchar(256),
@PageIndex int,
@PageSize int
)
返回值:所有满足条件的行数。
-
返回分页(所有)用户成员资格数据集。
CREATE PROCEDURE aspnet_Membership_GetAllUsers
(
@ApplicationName nvarchar(256),
@PageIndex int,
@PageSize int
)
返回值:所有满足条件的行数。
-
根据Email查询用户成员资格数据,返回用户数据集(一行)。
CREATE PROCEDURE aspnet_Membership_GetUserByEmail
(
@ApplicationName nvarchar(256),
@Email nvarchar(256)
)
返回值:成功返回 0;
用户不存在,返回 1。
-
根据用户名查询用户成员资格数据,返回用户数据集(一行)。
CREATE PROCEDURE aspnet_Membership_GetUserByName
(
@ApplicationName nvarchar(256),
@UserName nvarchar(256),
@CurrentTimeUtc datetime,
@UpdateLastActivity bit = 0
)
输入参数@UpdateLastActivity指定是否更新用户表(aspnet_Users)中的最后活动时间(LastActivityDate)字段。
返回值:成功返回 0;
用户不存在,返回 -1。
-
根据用户ID查询用户用户成员资格数据,返回用户数据集(一行)。
CREATE PROCEDURE aspnet_Membership_GetUserByUserId
(
@UserId uniqueidentifier ,
@CurrentTimeUtc datetime,
@UpdateLastActivity bit = 0
)
输入参数@UpdateLastActivity指定是否更新用户表(aspnet_Users)中的最后活动时间(LastActivityDate)字段。
返回值:成功返回 0;
用户不存在,返回 -1。
-
查询用户的密码和存储密码的格式,返回包含用户密码和密码存储格式两个字段的数据据集(一行)。
CREATE PROCEDURE aspnet_Membership_GetPassword
(
@ApplicationName nvarchar(256),
@UserName nvarchar(256),
@MaxInvalidPasswordAttempts int,
@PasswordAttemptWindow int,
@CurrentTimeUtc datetime,
@PasswordAnswer nvarchar(128) = NULL
-
查询有关用户密码的详细信息,返回用户帐户信息数据集(一行)。
CREATE PROCEDURE aspnet_Membership_GetPasswordWithFormat
(
@ApplicationName nvarchar(256),
@UserName nvarchar(256),
@UpdateLastLoginActivityDate bit,
@CurrentTimeUtc datetime
)
输入参数@UpdateLastLoginActivityDate指示是否更新最后登录时间(LastLoginDate) 字段和用户表(aspnet_Users)中的最后活动时间(LastActivityDate) 字段。
返回值:成功返回 0;
用户不存在,返回 1;
用户被锁定,返回 99。
-
获取在线用户数。
CREATE PROCEDURE aspnet_Membership_GetNumberOfUsersOnline
(
@ApplicationName nvarchar(256),
@MinutesSinceLastInActive int,
@CurrentTimeUtc datetime
)
最近@MinutesSinceLastInActive分钟内登录的用户为在线用户,
即满足 LastActivityDate(
datetime) >= @CurrentTimeUtc(
datetime) - @MinutesSinceLastInActive(分钟数)的条件。
返回值:返回在线用户数。