实现自定义成员资格用户和自定义成员资格
参考
http://msdn.microsoft.com/en-us/library/6tc47t75%28v=VS.80%29.aspx
http://msdn.microsoft.com/en-us/library/ms366730.aspx
题
在标题Create a Custom Membership Provider
标题下的第二个链接中,您将注意到他们提到了这一点
您需要创建一个支持自定义成员资格用户类型和自定义成员资格数据存储的自定义成员资格提供程序。 可以编写自定义成员资格提供程序的GetUser和CreateUser方法以返回自定义成员资格用户类型的对象。
下面是我的自定义会员用户与自定义字段
自定义会员用户
public class CustomMembershipUser : MembershipUser { //private fields for internal use private bool _isMarried; private bool _hasLicense; private string _address; private int _userId; //public fields for use by end user public int UserId { get { return _userId; } set { _userId = value; } } ...
定制会员提供商
public class CustomMembershipProvider : MembershipProvider { ..... public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) { throw new NotImplementedException(); } ....
我完全按照他们的要求去做,返回我的自定义类型的会员用户
public override **CustomMembershipUser** CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
但是当我重写MembershipProvider.CreateUser时 ,我抱怨IDE 无法改变返回类型 。 那么我现在应该怎么做,
- 创建具有相同参数的另一个方法并返回自定义成员资
- 我不需要密码问题,安全问题字段如何摆脱它们?
您需要在函数中返回MembershipUser
实例,该实例是它的返回类型。 目前它没有返回它应该返回的内容。
codeproject有一个很好的教程: 自定义成员资格提供者 。 您可能会发现它有助于了解您未正确的位置。
您不应创建返回CustomMembershipUser的新方法。
您应该在自定义成员资格提供程序中只有MembershipUser CreateUser(…) 。 在您返回之前,您需要将CustomMembershipUser转换为MembershipUser。
例如,当你回来时跟随。
return(MembershipUser)new CustomMembershipUser();
- Membership.DeleteUser(UserName,true)不从角色中删除用户
- 成功登录后,User.Identity.IsAuthenticated为false
- 如何在ASP.NET中允许多种身份validation方法?
- Membership.GetUser(用户名) – 如何返回正确的套管?
- 通过电子邮件恢复/重置丢失的密码选项
- 如何对GUID与LINQ进行不区分大小写的比较?
- 在升级到VS 2010 / .NET 4.0后,Membership.ValidateUser始终返回false
- 使用SqlMembership Provider重置后无法使用新密码登录
- 在调用“WebSecurity”类的任何其他方法之前,必须调用“WebSecurity.InitializeDatabaseConnection”方法