我在SL4业务应用程序中使用自定义MembershipProvider
(使用EF而不是Sql)。
MembershipUser
类的默认实现具有电子邮件地址属性,但SL4业务应用程序模板(继承自User
)定义的UserBase
对象不会为您提供访问电子邮件属性。
此外,当AuthenticationService
(继承自AuthenticationBase<User>
)甚至没有尝试阅读用户的电子邮件时。
有没有办法通过使用AuthenticationService访问MembershipUser(服务器端)/用户(客户端)的Email属性,或者我是否必须创建自己的例程来返回用户的正确属性?
谢谢,
马丁
答案 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.
}
}