如何在Silverlight 4 Business Application中获取当前用户的电子邮件?

时间:2011-07-27 17:38:31

标签: wcf security silverlight-4.0 forms-authentication wcf-security

我在SL4业务应用程序中使用自定义MembershipProvider(使用EF而不是Sql)。

MembershipUser类的默认实现具有电子邮件地址属性,但SL4业务应用程序模板(继承自User)定义的UserBase对象不会为您提供访问电子邮件属性。

此外,当AuthenticationService(继承自AuthenticationBase<User>)甚至没有尝试阅读用户的电子邮件时。

有没有办法通过使用AuthenticationService访问MembershipUser(服务器端)/用户(客户端)的Email属性,或者我是否必须创建自己的例程来返回用户的正确属性?

谢谢,

马丁

1 个答案:

答案 0 :(得分:1)

只要实现IUser,就可以创建自己的User类。

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.
      }
}