MVC3 - Получить название отдела аутентифицированного пользователя - PullRequest
1 голос
/ 26 августа 2011

В моем приложении у меня есть таблица БД, которая содержит список пользователей и соответствующую таблицу отделов.Пока модель User является свойством текущего объекта, над которым я работаю (извлекается из БД), у меня нет проблем с «детализацией» для доступа к имени отдела пользователя ... или любой другой информации, которая является свойствомэтого пользователя obj.

Мне бы хотелось иметь возможность осуществлять такой же тип доступа к данным для аутентифицированного в настоящий момент Пользователя .... что, по-видимому, является совершенно другой моделью.Может кто-нибудь сказать мне, если есть способ добавить свойства к модели аутентифицированного пользователя, или, по крайней мере, связать его с существующим объектом?

Заранее спасибо за любую помощь!

Обновление: яхотел уточнить, что я говорю о пользователе AuthCookie.

Ответы [ 2 ]

4 голосов
/ 26 августа 2011

Существует пакет NuGet с именем FormsAuthenticationExtensions , который упрощает код, необходимый для вставки пользовательских данных в ваш файл cookie аутентификации.

Например, для хранения ваших данных вы делаете:

var ticketData = new NameValueCollection
{
    { "name", user.FullName },
    { "emailAddress", user.EmailAddress }
};
new FormsAuthentication().SetAuthCookie(user.UserId, true, ticketData); 

И чтобы вернуть его:

var ticketData = ((FormsIdentity) User.Identity).Ticket.GetStructuredUserData();
var name = ticketData["name"];
var emailAddress = ticketData["emailAddress"]; 
1 голос
/ 26 августа 2011

Да, вы можете добавить дополнительную информацию в файл cookie аутентификации, но вам нужно самостоятельно сгенерировать FormsAuthenticationTicket и файл cookie.

Хороший пример настройки пользовательских данных: здесь

и пример его возврата - здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...