4

感谢您的关注。

背景

在我当前的项目中,客户希望我使用 ASP.NET MVC4 的简单成员资格。通常我不使用 .NET 成员资格类,所以也许我遗漏了一些简单的东西,但我似乎无法通过代码删除用户,因为webpages_UsersInRoles表和UserProfile表之间存在外键约束。

我已经尝试过使用Membership.DeleteUser(id, true);,因为“true”的设置应该级联删除,但如果有分配给用户的角色,即使这样也会失败。

我尝试mdb通过服务器资源管理器进入文件并将 FK 上的删除操作设置为CASCADE但删除操作的选项被禁用。

作为最后的努力,我从成员数据库创建了一个单独的实体类 (.edmx),希望我可以通过 C# 破解成功删除的方法,但是 .edmx 的生成拒绝引入webpages_UsersInRoles表!

我正在使用 C#、.NET 4.5。

问题

使用 C#。如果已为该用户分配了一个或多个角色,如何从 MVC4 SimpleMembership 中删除该用户?

4

2 回答 2

7

我无法很快找到为什么在用户被删除时,UsersInRoles 表上似乎没有删除级联规则,但也许这个答案有帮助:

void DeleteUserRoles(string username)
{
    foreach (var role in Roles.GetRolesForUser(username))
        Roles.RemoveUserFromRole(username, role);            
}
于 2013-02-18T12:20:05.213 回答
0

另外使用 RemoveUserFromRoles(复数)

void DeleteUserRoles(string username)
{
    Roles.RemoveUserFromRoles(username, Roles.GetRolesForUser(username));
}
于 2015-05-11T14:37:04.717 回答