Получение атрибутов пользователя из MembershipProvider - PullRequest
0 голосов
/ 06 декабря 2011

Я использую Oracle.Web.Security.OracleMembershipProvider MembershipProvider для моего приложения ASP.NET.Моя форма для входа содержит имя пользователя, пароль и адрес электронной почты.

После входа в систему я могу получить доступ к имени пользователя с помощью User.Identity.Name.

  1. Как я могу получить адрес электронной почты?Я не могу найти это в объекте User.
  2. Как я могу изменить пользователей двух разных типов (с правами на запись и с правами на чтение).
  3. Мне нужно создать еще одну таблицу сидентификатор пользователя в качестве внешнего ключа.Как я могу получить это, чтобы я мог ввести в другие таблицы в качестве внешнего ключа.

Ответы [ 2 ]

1 голос
/ 19 января 2012

Вы можете создать пользовательский объект, используя:

[C#]
System.Web.Security.Membership.GetUser("username");
System.Web.Security.Membership.GetUserNameByEmail("email");
  1. Этот метод возвращает объект MembershipUser. С помощью этого объекта вы можете получить электронную почту и другие свойства.

  2. Я не уверен, что вы подразумеваете под разными типами пользователей, но вы можете использовать роли.

  3. Вы можете использовать ProviderUserKey свойство MembershipUser, чтобы получить UserId как System.Guid

0 голосов
/ 06 декабря 2011

Принципал, установленный в потоке после аутентификации, носит общий характер и не содержит этих подробностей.Один из подходов заключается в расширении интерфейсов IPrincipal и IIdentity путем добавления новых свойств и установки их на этапе аутентификации.Но для этого необходимо использовать механизм аутентификации \ авторизации, который не является идеальным подходом.
Другой подход может заключаться в создании пользовательского класса пользователя в проблемной области и загрузке его данных при аутентификации пользователя.Этот класс User может содержать любые требуемые свойства и любые связанные объекты.Это будет пользовательский код, который не будет использовать инфраструктуру безопасности ASP.Net.

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