mvc 3 成员资格 Role.AddUserToRole

发布于 2024-12-08 02:50:53 字数 727 浏览 0 评论 0原文

我已经选择了角色的数组。现在我想将该数组角色添加到指定的用户。我有一个像这样的控制器:

string[] array = collection["RolesSelected"].Split(',');
        try
        {
            Roles.AddUserToRoles(username, array);

        }

但是当我提交时,什么也没有发生。当我调试时

 Roles.AddUserToRoles(username, array);

它显示正确。我的意思是用户名是正确的,并且数组是正确的(检查的角色列表)。

如果我尝试删除角色,

Roles.RemoveUserFromRoles(username,array)

则用户名的角色将被删除。

为什么我可以删除角色但无法添加角色?

谢谢

ps:对不起我的英语:)

编辑

我可以使用删除指定用户的角色

Roles.RemoveUserFromRoles(username,array)

,但我无法向指定用户添加角色。 当我删除指定用户的所有角色时,我可以为用户添加角色。 我应该先删除所有角色,然后再次添加它们(我想我不能这样做,因为我的项目有很多用户和角色)

i have array for role selected. and now i want to add that array role to specified user. i have a controller like this :

string[] array = collection["RolesSelected"].Split(',');
        try
        {
            Roles.AddUserToRoles(username, array);

        }

but when i submit, nothing happens. when i debug in

 Roles.AddUserToRoles(username, array);

it shows correct. i mean username is correct, and array is correct(list of role that checked).

if i try to remove role,

Roles.RemoveUserFromRoles(username,array)

the role for username is removed.

why did i can remove role but i cant add role ?

thanks

ps:sorry for my english :)

EDIT

i can remove role for specified user using

Roles.RemoveUserFromRoles(username,array)

but i cant add role to specified user.
when i remove all roles from specified user, then i can add role for user.
should i remove all roles first, and then adding them again (i think i cant do that because i have many users and roles for my project)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

苦笑流年记忆 2024-12-15 02:50:53

我怀疑您在尝试将用户添加到他/她已存在的角色时遇到错误(抛出System.Configuration.Provider.ProviderException)。试试这个:也就是说

string[] array = collection["RolesSelected"].Split(',');
foreach (string role in array)
{
   if (!Roles.IsUserInRole(username, role))
   {
      Roles.AddUserToRole(username, role);
   }
}

,如果您希望用户拥有数组中指定的角色,您需要先删除所有角色,然后执行AddUserToRole 打电话。

I suspect that you are encountering an error (System.Configuration.Provider.ProviderException is being thrown) by trying to add a user to a role in which s/he already exists. Try this instead:

string[] array = collection["RolesSelected"].Split(',');
foreach (string role in array)
{
   if (!Roles.IsUserInRole(username, role))
   {
      Roles.AddUserToRole(username, role);
   }
}

That said, if you want the user to only have the roles specified in the array, you'd want to remove all the roles first and then do the AddUserToRole call.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文