Как назначить роль пользователю OpenId для сайта ASP.NET MVC? - PullRequest
6 голосов
/ 02 июня 2009

Я использую OpenId в своем приложении ASP.NET MVC. Прекрасно работает :) После того, как у меня есть идентификатор 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?)

Ответы [ 2 ]

4 голосов
/ 02 июня 2009

Вам необходимо написать свой RoleProvider и подключить его в файле web.config. Ваш RoleProvider возьмет имя пользователя и определит его роль. IPrincipal.IsInRole использует настроенный RoleProvider для определения членства в роли.

1 голос
/ 19 сентября 2011

Посмотрите на эту статью

Показывает простой способ интеграции openid с ролями членов и профилем. Надежда может помочь.

...