我使用以下代码来调用我的自定义成员提供程序方法:
Membership.CreateUser(newUser.UserName, newUser.Password);
但是我需要扩展一些参数。我已经写了这个重写方法:
public override MembershipUser CreateUser(string username, string password, string email,
string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
{
try
{
int max = 1;
int RoleID = 0;
using (var context = new KowsarSiteEntities())
{
max += (from i in context.aspnet_Users
select i).Max(itm => itm.UserId);
RoleID = (from v in context.aspnet_Roles
where v.RoleName.ToLower().Equals(RoleName)
select v.RoleId).FirstOrDefault();
KowsarSiteModel.aspnet_Membership member =
KowsarSiteModel.aspnet_Membership.Createaspnet_Membership
(ApplicationID, max, GetHashedPassword(password), 1);
KowsarSiteModel.aspnet_Users ASPNETusers =
KowsarSiteModel.aspnet_Users.Createaspnet_Users(ApplicationID, max, username);
KowsarSiteModel.aspnet_UsersInRoles userInRoles =
KowsarSiteModel.aspnet_UsersInRoles.Createaspnet_UsersInRoles(max, RoleID);
context.AddToaspnet_Membership(member);
context.AddToaspnet_Users(ASPNETusers);
context.AddToaspnet_UsersInRoles(userInRoles);
context.SaveChanges();
}
status = MembershipCreateStatus.Success;
}
catch (Exception ex)
{
string str = ex.Message;
status = MembershipCreateStatus.UserRejected;
}
return null;
}
我需要添加一些参数CreateUser方法,但它是如何可能的成员是一个静态类,我如何可以自定义它?
((YourProviderType)Membership.Provider).CreateUser(yourParameters);
如果你不打算遵从System.Web.Security提供的静态类,你就不能使用它们。
正如abatishchev所指出的,你并不一定要使用静态类;