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

Asp.net mvc 如何为ASP.NET MVC站点的OpenId用户分配角色?,asp.net-mvc,authorization,roles,dotnetopenauth,Asp.net Mvc,Authorization,Roles,Dotnetopenauth,我正在ASP.NETMVC应用程序中使用OpenId。非常好:)一旦我有了用户的OpenId标识符(一旦他们通过身份验证并返回到我的站点),我就加载用户数据(以获取显示名称等) 从这里,我也知道他们的角色 我不确定如何将角色分配给当前的Forms.Identity 这是我的密码 // Load User... var user = GetUsers().ByOpenIdIdentifier("blahblahblahbl...."); // Here means we ha

我正在ASP.NETMVC应用程序中使用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");
如何更改此代码,以便身份验证用户也可以分配其角色

更新 我偶然发现了一个定制授权属性。注意他们是如何检查会话中存在的登录用户角色的?此外,角色是一个枚举:)如果你问我的话,这是相当时髦的:)很好,很简单

想法(与完全成熟的RoleProvider类相比?

您需要自己的想法,并将其连接到web.config文件中。您的RoleProvider将获取用户的姓名并确定他们的角色。使用配置的RoleProvider确定角色成员身份。

查看


它展示了一种将openid与成员角色和概要文件集成的简单方法。希望能帮上忙。

天哪!这似乎需要做很多工作:(我希望只是手动将角色添加到身份中..就这么简单:(没有那么糟糕,尤其是如果您的角色存储是SQL。您实际上可能能够使用现有的ASP.NET SQL角色提供程序或对其进行扩展。即使编写自己的角色提供程序也没有那么糟糕。如果我记得的话,方法的数量可能会让人望而生畏,但并不特别复杂。我同意方法的数量令人望而生畏,但并不复杂。这很简单st的大小,只知道用户是否是管理员。在我的用户表中,我有一个位字段。我不会有多个角色。这就是为什么我有点…胆怯。