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)
然后我被IDE抱怨了 覆盖MembershipProvider.CreateUser 时无法更改返回类型。那么我现在该怎么做呢,
答案 0 :(得分:4)
您需要在函数中返回MembershipUser
实例,该实例是它的返回类型。目前它没有返回它应该返回的内容。
codeproject有一个很好的教程:Custom Membership Providers。您可能会发现它有助于了解您哪些方面没有成功。
答案 1 :(得分:-1)
您不应该创建一个返回CustomMembershipUser的新方法。
您应该在自定义成员资格提供程序中只有 MembershipUser CreateUser(...)。在您返回之前,您需要将CustomMembershipUser转换为MembershipUser。
E.g。你回来后跟着走。
return(MembershipUser)new CustomMembershipUser();