ASP.NET MVC 3:如何在控制器方法中获取用户角色?

发布于 2024-11-08 03:04:14 字数 329 浏览 3 评论 0原文

我希望能够

  1. 获取当前经过身份验证的用户的角色列表。
  2. 根据用户的角色过滤提供给该用户的数据。

我找到了检查用户是否处于特定角色的方法,但我不关心他们参与什么角色。数据库会知道哪些角色可以查看哪些数据。我需要将这些角色的集合提交到数据服务,以根据这些角色过滤数据。

那么第一步是如何在控制器方法中获取与当前用户关联的所有角色?

编辑:

这似乎效果很好:

Roles.GetRolesForUser(User.Identity.Name)

仍然欢迎支持答案。

I want to be able to

  1. Get a list of roles of the current authenticated user.
  2. Filter the data provided to that user based on their role.

I see ways to check if the user is in a particular role, but I don't care what role they participate. The database will know what roles are allowed to see what data. I need to submit a collection of these roles to the data service to filter the data based on those roles.

So first step is how do I get all roles associated with the current user in a controller method?

EDIT:

This seemed to work out nicely:

Roles.GetRolesForUser(User.Identity.Name)

Supporting answers still welcome.

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

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

发布评论

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

评论(3

娇女薄笑 2024-11-15 03:04:14
Roles.GetRolesForUser(User.Identity.Name)
Roles.GetRolesForUser(User.Identity.Name)
ペ泪落弦音 2024-11-15 03:04:14

这可以通过一条语句来完成:

User.IsInRole("admin");

This can be done with a single statement:

User.IsInRole("admin");
会发光的星星闪亮亮i 2024-11-15 03:04:14

如果有人需要此信息,万一您的用户有很多角色但您正在寻找一个角色,您可以这样做:(我认为 id share)

@if (Request.IsAuthenticated)
{
   string[] roles = Roles.GetRolesForUser();
   foreach (string role in roles)
   {
       if (role.Contains("admin"))
       {
           <li>@Html.ActionLink("Administration", "Admin", "Movies")</li>
           break;
       }
   }
}

If anyone need this information, in case your user has many roles but you're looking for one, you could do this:(i thought id share)

@if (Request.IsAuthenticated)
{
   string[] roles = Roles.GetRolesForUser();
   foreach (string role in roles)
   {
       if (role.Contains("admin"))
       {
           <li>@Html.ActionLink("Administration", "Admin", "Movies")</li>
           break;
       }
   }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文