我在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的课程相比?)
答案 0 :(得分:4)
您需要write自己的RoleProvider并将其连接到web.config文件中。您的RoleProvider将获取用户的姓名并确定其角色。 IPrincipal.IsInRole使用配置的RoleProvider来确定角色成员资格。
答案 1 :(得分:1)
它显示了将openid与成员资格角色和配置文件集成的简单方法。希望可以提供帮助。