gpt4 book ai didi

c# - ASP .Net 角色 - RemoveUserFromRole - 删除角色时出错

转载 作者:行者123 更新时间:2023-11-30 22:33:04 24 4
gpt4 key购买 nike

鉴于这段代码...(roleuserName 是传入的字符串)

string[] existingRoles = Roles.GetRolesForUser(userName);

foreach (string role in existingRoles)
{
if (!newRoles.Contains(role))
{
Authentication.AuthTraceStatic("Removing user {0} from role: {1}",
userName, role);
Roles.RemoveUserFromRole(userName, role);

}
}

我收到以下错误:

The user 'xxx' is already not in role 'yyy'.

这有点令人费解,因为我刚刚获取了用户的角​​色并检查了我要删除的角色是否存在......有什么线索可以使它正常工作吗?

最佳答案

不会是多线程的问题吧?您是否尝试过用锁 block 包围代码?如果您在 foreach 循环中使用 Roles.IsUserInRole(username, role) 检查角色是否存在,会发生什么情况?

我会尝试用这样的代码调试它,看看会发生什么。

        string[] existingRoles = Roles.GetRolesForUser(userName);

foreach (string role in existingRoles)
{
if (!newRoles.Contains(role))
{
Authentication.AuthTraceStatic("Removing user {0} from role: {1}", userName, role);
lock(o)
{
if(Roles.IsUserInRole(userName, role))
Roles.RemoveUserFromRole(userName, role);
else
Authentication.AuthTraceStatic("Somebody is messing with my roles!!", userName, role);
}

}
}

关于c# - ASP .Net 角色 - RemoveUserFromRole - 删除角色时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8485529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com