如何为ASP.NET MVC站点的OpenId用户分配角色?

时间:2009-06-02 13:22:40

标签: asp.net-mvc authorization roles dotnetopenauth

我在ASP.NET MVC应用程序中使用OpenId。工作得很好:)一旦我拥有用户的OpenId标识符(一旦他们经过身份验证并返回我的网站),我就会加载用户数据(以获取显示名称等)。

从这里开始,我也知道他们的角色。

我不确定如何将角色分配给当前的Forms.Identity。

这是我的代码......

// Load User...
var user = GetUsers().ByOpenIdIdentifier("blahblahblahbl....");

// Here means we have a user AND all the roles, for that user.

// Forms Authenticate and Redirect.
FormsAuthentication.SetAuthCookie(user.DisplayName, true);
return RedirectToAction("Index", "Home");

如何更改此代码,以便经过身份验证的用户也分配了他们的角色?

更新

我偶然发现this web post关于制作自定义授权属性的问题。请注意他们如何检查会话中存在的登录用户角色?此外,角色是一个枚举:)这是非常时髦的,如果你问我:)很好,很简单。

思考(与完整的基于RoleProvider的课程相比?)

2 个答案:

答案 0 :(得分:4)

您需要write自己的RoleProvider并将其连接到web.config文件中。您的RoleProvider将获取用户的姓名并确定其角色。 IPrincipal.IsInRole使用配置的RoleProvider来确定角色成员资格。

答案 1 :(得分:1)

看看at this article

它显示了将openid与成员资格角色和配置文件集成的简单方法。希望可以提供帮助。