Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Membership.DeleteUser未删除该用户的所有相关行_C#_Asp.net Mvc 4_Simplemembership - Fatal编程技术网

C# Membership.DeleteUser未删除该用户的所有相关行

C# Membership.DeleteUser未删除该用户的所有相关行,c#,asp.net-mvc-4,simplemembership,C#,Asp.net Mvc 4,Simplemembership,Membership.DeleteUser()管理删除我要删除的用户的用户配置文件。为什么它不同时删除存储在网页\u会员资格中的信息 现在我没有使用角色,所以请记住这一点,以便回答您的问题。我运行了一个测试,并验证了该测试不起作用。根据文件: 此方法删除成员帐户表中的条目(默认情况下,webpages\u membership)。如果deleteAllRelatedData为true,则存储在用户表中的所有用户数据也将被删除 但是在我的测试中,我将deleteAllRelatedData设置为t

Membership.DeleteUser()
管理删除我要删除的用户的用户配置文件。为什么它不同时删除存储在
网页\u会员资格
中的信息


现在我没有使用角色,所以请记住这一点,以便回答您的问题。

我运行了一个测试,并验证了该测试不起作用。根据文件:

此方法删除成员帐户表中的条目(默认情况下,webpages\u membership)。如果deleteAllRelatedData为true,则存储在用户表中的所有用户数据也将被删除

但是在我的测试中,我将deleteAllRelatedData设置为true,它只是删除了UserProfile表中的条目,而网页中的条目保持不变。文档中或SimpleMembership实现中的错误

但我确实找到了工作。第一个电话。这将删除网页\u会员资格表中的条目。然后调用SimpleMembershipProvider.DeleteUser删除UserProfile表中的条目。下面是我用于测试的代码片段

    var roles = (SimpleRoleProvider)Roles.Provider;
    var membership = (SimpleMembershipProvider)Membership.Provider;

    if (!roles.RoleExists("Admin"))
    {
        roles.CreateRole("Admin");
    }
    if (membership.GetUser("test", false) == null)
    {
        membership.CreateUserAndAccount("test", "test");
    }

    //Commented this out because you will get a foreign key 
    //error if you try to delete the user without removing the 
    //the mapping of the user to a role
    //if (!roles.GetRolesForUser("test").Contains("Admin"))
    //{
    //    roles.AddUsersToRoles(new[] { "test" }, new[] { "admin" });
    //}

    //This will delete the user information from webpages_membership
    bool wasDeleted = membership.DeleteAccount("test");

    //This will delelet the user information form UserProfile
    wasDeleted = membership.DeleteUser("test", true);

正如您从评论中看到的,如果您正在使用角色,并且您已经将角色映射到该用户,那么这将不起作用。在删除用户之前,需要先删除这些内容。我知道这不是zms6445的问题,但我想让使用角色的人知道这一点。

如何访问方法DeleteAccount和DeleteUser。我尝试了您的解决方法,SimpleMembershipProvider类中唯一可用的方法是Equals和ReferenceEquals。我在答案中添加了测试代码。希望这能回答你的问题。如果它没有在你的问题中提供代码示例,那么我可以提供帮助。谢谢Kevin,回答得很好。我在您的答案代码中添加了从角色中删除用户的代码。foreach(角色中的var角色。GetRolesForUser(“测试”))角色。RemoveUserFromRole(“测试”,角色);