Расширение параметров для членства.Метод CreateUser

#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, если вы не собираетесь соответствовать их интерфейсу.

Однако, как указал абатищев, вам не обязательно использовать статический класс; вы всегда можете использовать свой собственный класс вместо этого.