Как получить электронную почту текущего пользователя в Silverlight 4 Business Application? - PullRequest
1 голос
/ 27 июля 2011

Я использую пользовательский MembershipProvider (используя EF, а не Sql) с бизнес-приложением SL4.

Реализация по умолчанию класса MembershipUser имеет свойство адреса электронной почты, однако объект User, определенный шаблоном бизнес-приложения SL4 (унаследованный от UserBase), не предоставляет вам доступ к свойству Email.

Более того, когда AuthenticationService (наследующий от AuthenticationBase<User>) даже не пытается прочитать электронную почту пользователя.

Есть ли способ получить доступ к свойству электронной почты MembershipUser (на стороне сервера) / пользователя (на стороне клиента) с помощью AuthenticationService, или мне нужно создать собственные подпрограммы для возврата правильных свойств пользователя?

Спасибо

Мартин

1 Ответ

1 голос
/ 27 июля 2011

Вы можете создать свой собственный класс User, если вы реализуете IUser.

public class User : IUser
{
    public int Id { get; set; }

    public string UserName { get; set; }
    public string Password { get; set; }
    public string Email { get; set; }

    #region Implementation of IUser
    public string Name { get; set; }
    public IEnumerable<string> Roles { get; set; }
    #endregion
}

Вы можете изменить AuthenticationService, чтобы Реализовать IAuthentication<User> и реализовать Логин. Как часть вашего реализованного процесса Login вы можете заполнить User.Email.

public class AuthenticationService : DomainService, IAuthentication<User>
{
      public User Login(string userName, string password, bool isPersistent, string customData)
      { 
           //can populate User.Email on successful login.
      }
}
...