Asp.net 删除角色并恢复表中的角色

Asp.net 删除角色并恢复表中的角色,asp.net,asp.net-membership,Asp.net,Asp.net Membership,因为一个错误。我使用了错误的命令。我想从表aspnet_UsersInRoles中删除用户角色。 我猜命令可能是 Roles.RemoveUserFromRole(userName, origin_role); 然而,我错误地使用了一个错误的命令 Roles.DeleteRole(origin_role,false); 最初,该表有4个角色。现在桌上的RoleId只有两个 61572264-4935-461d-9d8c-71f147f28c34 c09f25e6-fd6a-447b-8e0d

因为一个错误。我使用了错误的命令。我想从表aspnet_UsersInRoles中删除用户角色。 我猜命令可能是

Roles.RemoveUserFromRole(userName, origin_role);
然而,我错误地使用了一个错误的命令

Roles.DeleteRole(origin_role,false);
最初,该表有4个角色。现在桌上的RoleId只有两个

61572264-4935-461d-9d8c-71f147f28c34
c09f25e6-fd6a-447b-8e0d-eba0cfc94e40
我如何找到并恢复它们?
非常感谢。

我不想这么说,但你被水淹没了。默认的ASP.Net提供程序不包括任何类型的审核或软删除。如果您有数据库备份,您可以从中进行探索/恢复

我不想这么说,但你被水淹没了。默认的ASP.Net提供程序不包括任何类型的审核或软删除。如果您有数据库备份,您可以从中进行探索/恢复

下面是您调用的函数的源代码。 它调用dbo.aspnet_Roles_DeleteRole存储过程。 我目前没有访问asp.net成员数据库的权限,否则我会为您查询。 您可能希望检查存储过程的功能,但正如ssyladin提到的,我怀疑您是否能够恢复任何内容(因为您将throwOnPopulatedRole参数发送到false)


下面是您调用的函数的源代码。 它调用dbo.aspnet_Roles_DeleteRole存储过程。 我目前没有访问asp.net成员数据库的权限,否则我会为您查询。 您可能希望检查存储过程的功能,但正如ssyladin提到的,我怀疑您是否能够恢复任何内容(因为您将throwOnPopulatedRole参数发送到false)

public override bool DeleteRole(string roleName, bool throwOnPopulatedRole)
        {
            SecUtility.CheckParameter(ref roleName, true, true, true, 256, "roleName");
            try {
                SqlConnectionHolder holder = null;

                try {
                    holder = SqlConnectionHelper.GetConnection(_sqlConnectionString, true);
                    CheckSchemaVersion( holder.Connection );

                    SqlCommand    cmd     = new SqlCommand("dbo.aspnet_Roles_DeleteRole", holder.Connection);

                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandTimeout = CommandTimeout;

                    SqlParameter p = new SqlParameter("@ReturnValue", SqlDbType.Int);
                    p.Direction = ParameterDirection.ReturnValue;
                    cmd.Parameters.Add(p);
                    cmd.Parameters.Add(CreateInputParam("@ApplicationName", SqlDbType.NVarChar, ApplicationName));
                    cmd.Parameters.Add(CreateInputParam("@RoleName", SqlDbType.NVarChar, roleName));
                    cmd.Parameters.Add(CreateInputParam("@DeleteOnlyIfRoleIsEmpty", SqlDbType.Bit, throwOnPopulatedRole ? 1 : 0));
                    cmd.ExecuteNonQuery();
                    int returnValue = GetReturnValue(cmd);

                    if( returnValue == 2 )
                    {
                        throw new ProviderException(SR.GetString(SR.Role_is_not_empty));
                    }

                    return ( returnValue == 0 );
                }
                finally
                {
                    if( holder != null )
                    {
                        holder.Close();
                        holder = null;
                    }
                }
            }
            catch
            {
                throw;
            }
        }