如何在ASP.NET MVC4 SimpleMembership中删除具有角色的用户?

4

感谢您的关注。

背景

在我的当前项目中,客户希望我使用ASP.NET MVC4的Simple Membership。通常情况下我不会使用.NET Membership类,所以我可能错过了一些简单的东西,但我似乎无法通过代码删除用户,因为webpages_UsersInRoles表和UserProfile表之间存在外键约束。

我尝试使用Membership.DeleteUser(id, true);,因为设置'true'应该级联删除,但即使用户被分配了角色,它也会失败。

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

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

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

问题

如何使用C#从MVC4 SimpleMembership中删除一个已被分配一个或多个角色的用户?

2个回答

7

我无法快速找到为什么在用户被删除时,UsersInRoles表中似乎没有on delete cascade规则,但也许这个答案会有所帮助:

void DeleteUserRoles(string username)
{
    foreach (var role in Roles.GetRolesForUser(username))
        Roles.RemoveUserFromRole(username, role);            
}

那就是我现在要做的。谢谢! - Matt Cashatt

0

此外,使用RemoveUserFromRoles(复数形式)

void DeleteUserRoles(string username)
{
    Roles.RemoveUserFromRoles(username, Roles.GetRolesForUser(username));
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接