#c# #.net #asp.net #asp.net-membership
#c# #.net #asp.net #asp.net-членство
Вопрос:
Я использую этот код для вызова моего пользовательского метода поставщика членства :
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, но как это возможно, членство — это статический класс, как я могу его настроить?
Ответ №1:
((YourProviderType)Membership.Provider).CreateUser(yourParameters);
Ответ №2:
Вы не можете использовать статический класс, предоставляемый System.Web.Security, если вы не собираетесь соответствовать их интерфейсу.
Однако, как указал абатищев, вам не обязательно использовать статический класс; вы всегда можете использовать свой собственный класс вместо этого.