6

我在我的 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");

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

更新

我偶然发现了这篇关于制作自定义 Authorize 属性的网络帖子。请注意他们如何检查会话中存在的登录用户角色?此外,角色是一个枚举 :) 这很时髦,如果你问我 :) 很好很简单。

想法(与完整的 RoleProvider 类相比?)

4

2 回答 2

4

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

于 2009-06-02T13:32:14.423 回答
1

看看这篇文章

它展示了一种将 openid 与成员角色和配置文件集成的简单方法。希望能有所帮助。

于 2011-09-19T05:26:15.257 回答