二、ASP.NET四大“插件”的总后台--ASPNETDB (ASPNETDB 存储过程)

     操纵基本(表)的存储过程
  1. 注册应用程序。

    CREATE PROCEDURE
    aspnet_Applications_CreateApplication
    (
      @ApplicationName nvarchar(256),
      @ApplicationId uniqueidentifier OUTPUT
    )

    该过程检查应用程序名(@ApplicationName)在表(aspnet_Applications)中是否已经存在,
    如果存在,则表示应用程序已经注册;如果不存在,就为@ApplicationName在应用程序表
    (aspnet_Applications)中新增一行,注册新的应用程序。

    输出参数带回用户ID。
  2. 创建新用户。

    CREATE PROCEDURE aspnet_Users_CreateUser
    (
     @ApplicationId uniqueidentifier,
     @UserName nvarchar(256),
     @IsUserAnonymous bit,
     @LastActivityDate datetime,
     @UserId uniqueidentifier OUTPUT
    )

    输出参数带回新建用户的ID。

    返回值:成功返回0;
    失败(对应于@UserId的用户已存在)返回-1。
  3. 删除用户表的一个或多个从表中的数据,
    当所有从表中的数据都被删除后,也一并删除主表(aspnet_Users)中的数据。
    用户表(aspnet_Users)表的主从关系请参看 数据库关系图

    数据库关系图 。

    CREATE PROCEDURE aspnet_Users_DeleteUser
    (
     @ApplicationName nvarchar(256),
     @UserName nvarchar(256),
     @TablesToDeleteFrom int,
     @NumTablesDeletedFrom int OUTPUT
    )

    输入参数@TablesToDeleteFrom为下面表格中单项值或多项值的二进制或值。
    aspnet_Membership1
    aspnet_UsersInRoles2
    aspnet_Profile4
    aspnet_PersonalizationPerUser8

    输出参数@NumTablesDeletedFrom带回受影响表的数量(0~5)。

    返回值:成功返回 0;
    发生错误,返回 SQL SEVER 系统错误号( @@ERROR)。

    其它(杂类)

     aspnet_AnyDataInTables:检查某个表中是否存在数据,还是空表。

     aspnet_WebEvent_LogEvent:
     由SqlWebEventProvider调用,向aspnet_WebEvent_Events表中写入事件日志。

    以下三个是关于SchemaVersion的(请参见aspnet_SchemaVersions表)。
     aspnet_CheckSchemaVersion
     aspnet_RegisterSchemaVersion
     aspnet_UnRegisterSchemaVersion

    以下两个是ASPNETDB的自维护存储过程
     aspnet_Setup_RemoveAllRoleMembers:SQL SERVER ROLE
     aspnet_Setup_RestorePermissions:SQL SERVER PERMISSION

  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(分钟数)的条件。

    返回值:返回在线用户数
  1. 创建角色。

    CREATE PROCEDURE aspnet_Roles_CreateRole
    (
     @ApplicationName nvarchar(256),
     @RoleName nvarchar(256)
    )

    该过程首先调用 aspnet_Applications_CreateApplication  注册应用程序;
    然后将角色数据添加到角色表(aspnet_Roles) 中。

    返回值:成功返回 0;
    角色已存在,返回 1。
    发生错误,返回 -1。
  2. 删除指定角色。

    CREATE PROCEDURE aspnet_Roles_DeleteRole
    (
     @ApplicationName nvarchar(256),
     @RoleName nvarchar(256),
     @DeleteOnlyIfRoleIsEmpty bit
    )

    输入参数@DeleteOnlyIfRoleIsEmpty指示是否只有当角色在未和任何用户关联
    的情况下(即在aspnet_UsersInRoles表中已经不存在该角色了),才允许
    在角色表(aspnet_Roles) 中删除角色。

    返回值:成功返回0;
    应用程序未被注册,返回 1;
    角色不存在,返回 1;
    aspnet_UsersInRoles 表中存在引用角色的数据,返回 2;
  3. 查询(所有)角色,返回角色名数据集。

    CREATE PROCEDURE
    aspnet_Roles_GetAllRoles
    (
     @ApplicationName nvarchar(256)
    )
  4. 检查角色是否存在。

    CREATE PROCEDURE aspnet_Roles_RoleExists
    (
     @ApplicationName nvarchar(256),
     @RoleName nvarchar(256)
    )

    返回值:角色存在,返回 1;
    角色不存在,返回 0。
  5. 向aspnet_UsersInRoles表批量添加数据。

    CREATE PROCEDURE aspnet_UsersInRoles_AddUsersToRoles
    (
     @ApplicationName nvarchar(256),
     @UserNames nvarchar(4000),
     @RoleNames nvarchar(4000),
     @CurrentTimeUtc datetime
    )

    该过程将一批用户批量关联到一批指定的角色。
    如果用户不存在,则先向用户表(aspnet_Users)中添加用户。

    输入参数 @UserNames以 ','间隔各用户名。
    输入参数 @RoleNames以 ','间隔各角色名。

    返回值:成功返回0;
    应用程序未被注册,返回 2;
    如果@RoleNames中的某一个角色在角色表中不存在,返回 2;
    如果@UserNames和@RoleNames中的任一个用户角色组合
    在 aspnet_UsersInRoles 表中已经存在,返回3。
  6. 从aspnet_UsersInRoles表批量删除数据。

    CREATE PROCEDURE aspnet_UsersInRoles_RemoveUsersFromRoles
    (
     @ApplicationName nvarchar(256),
     @UserNames nvarchar(4000),
     @RoleNames nvarchar(4000)
    )

    输入参数 @UserNames以 ','间隔各用户名。
    输入参数 @RoleNames以 ','间隔各角色名。

    返回值:成功返回0;
    应用程序未被注册,返回 2;
    如果@UserNames中的某一个用户在用户表中不存在,返回 1;
    如果@RoleNames中的某一个角色在角色表中不存在,返回 2;
    如果@UserNames和@RoleNames中的任一个用户角色组合
    在aspnet_UsersInRoles 中不存在,返回 3。
  7. (LIKE)查询指定角色并且用户名与@UserNameToMatch匹配的用户,返回用户名数据集。

    CREATE PROCEDURE aspnet_UsersInRoles_FindUsersInRole
    (
     @ApplicationName nvarchar(256),
     @RoleName nvarchar(256),
     @UserNameToMatch nvarchar(256)
    )

    返回值:成功返回0;
    应用程序未被注册,返回 1;
    角色不存在,返回 1。
  8. 查询指定角色的用户,返回用户名数据集。

    CREATE PROCEDURE aspnet_UsersInRoles_GetUsersInRoles
    (
     @ApplicationName nvarchar(256),
     @RoleName nvarchar(256)
    )

    返回值:成功返回0;
    应用程序未被注册,返回 1;
    角色不存在,返回 1。
  9. 查询指定用户的角色,返回角色名数据集。

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

    返回值:成功返回0;
    应用程序未被注册,返回 1;
    用户不存在,返回 1;
  10. 检查aspnet_UsersInRoles表中相关记录是否存在。

    CREATE PROCEDURE aspnet_UsersInRoles_IsUserInRole
    (
     @ApplicationName nvarchar(256),
     @UserName nvarchar(256),
     @RoleName nvarchar(256)
    )

    返回值:应用程序未被注册,返回 1;
    用户不存在,返回 2;
    角色不存在,返回 2;
    如果aspnet_UsersInRoles表中@UserName、@UserName组合存在,返回 1;
    如果不存在,返回 0。
  1. 设置(保存)用户的自定义属性数据。

    CREATE PROCEDURE aspnet_Profile_SetProperties
    (
     @ApplicationName nvarchar(256),
     @PropertyNames ntext,
     @PropertyValuesString ntext,
     @PropertyValuesBinary image,
     @UserName nvarchar(256),
     @IsUserAnonymous bit,
     @CurrentTimeUtc datetime
    )

    该过程首先调用 aspnet_Applications_CreateApplication 注册应用程序;
    然后检查用户表(aspnet_Users) 中是否已存在该用。如果存在,
    更新其最后活动时间(LastActivityDate 字段);
    如果不存在,就调用 aspnet_Users_CreateUser 创建一个用户;
    最后检查个性化用户配置(aspnet_Profile)表中是否存在用户的自定义属性数据,
    如果存在,则更新数据,否则,向表中添加一行用户自定义属性数据。

    返回值:成功返回 0;
    发生错误,返回 -1。
  2. 删除非活动用户的自定义属性数据。

    CREATE PROCEDURE aspnet_Profile_DeleteInactiveProfiles
    (
     @ApplicationName nvarchar(256),
     @ProfileAuthOptions int,
     @InactiveSinceDate datetime
    )

    输入参数:@ProfileAuthOptions取下列3值之一。
    0:匿名用户;
    1:验证用户;
    2:所有用户。

    最后活动时间(aspnet_Users表中的LastActivityDate字段)
    小于等于@InactiveSinceDate 的用户为非活动用户。

    返回值:删除的行数。

  3. 批量删除用户的自定义属性数据,以查询形式返回删除的行数。

    CREATE PROCEDURE aspnet_Profile_DeleteProfiles
    (
     @ApplicationName nvarchar(256),
     @UserNames nvarchar(4000)
    )

    输入参数 @UserNames以 ','间隔各用户名。

    返回值:成功返回 0;
    发生错误,返回 -1。
  4. 返回指定用户的自定义属性数据集(一行),
    同时更新用户表(aspnet_Users)中的最后活动时间(LastActivityDate字段)。

    CREATE PROCEDURE aspnet_Profile_GetProperties
    (
     @ApplicationName nvarchar(256),
     @UserName nvarchar(256),
     @CurrentTimeUtc datetime
    )
     
  5. 查询用户的自定义属性数据,返回两个数据集,
    第一个返回分页数据集,第二个数据集返回所有满足条件的行数。

    CREATE PROCEDURE aspnet_Profile_GetProfiles
    (
     @ApplicationName nvarchar(256),
     @ProfileAuthOptions int,
     @PageIndex int,
     @PageSize int,
     @UserNameToMatch nvarchar(256) = NULL,
     @InactiveSinceDate datetime = NULL
    )

    输入参数:@ProfileAuthOptions取下列3值之一。
    0:匿名用户;
    1:验证用户;
    2:所有用户。
  6. 查询具有自定义属性数据的非活动用户数,以查询形式返回。

    CREATE PROCEDURE aspnet_Profile_GetNumberOfInactiveProfiles
    (
     @ApplicationName nvarchar(256),
     @ProfileAuthOptions int,
     @InactiveSinceDate datetime
    )

    输入参数:@ProfileAuthOptions取下列3值之一。
    0:匿名用户;
    1:验证用户;
    2:所有用户。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值