Пользовательский участник с необходимыми параметрами

StackOverflow https://stackoverflow.com/questions/6303012

Вопрос

Я строю пользовательский членский проводник более точно функцию GetUser.

Поэтому у меня есть пользовательский членский член.

public class CustomMemberShipUser : MembershipUser
{
    public CustomMemberShipUser (
        string providerName,
        string email,
        object providerUserKey,
        string name,
        string passwordQuestion,
        string comment,
        bool isApproved,
        bool isLockedOut,
        DateTime creationDate,
        DateTime lastLoginDate,
        DateTime lastActivityDate,
        DateTime lastPasswordChangedDate,
        DateTime lastLockoutDate
        ): base(
            providerName, email, providerUserKey, name, passwordQuestion,
            comment, isApproved, isLockedOut, creationDate, lastLoginDate,
            lastActivityDate, lastPasswordChangedDate, lastLockoutDate)
    {
    }
}

В функции getUser в отношении членства я получаю пользовательские данные и помещаю их в CustommembershipUser.

public override MembershipUser GetUser(string email, bool userIsOnline)
    {
        User u = _db.Users.Where(x => x.Email == email).First();
        CustomMemberShipUser customUser = new CustomMemberShipUser (
                                        "CustomMemberShipUser ",
                                        u.Email, 
                                        u.id,
                                        u.Email, 
                                        "", 
                                        "", 
                                        true, 
                                        false, 
                                        u.CreateDate, 
                                        DateTime.MinValue, 
                                        DateTime.MinValue, 
                                        DateTime.MinValue, 
                                        DateTime.MinValue);
        return customUser ;
    }

Как вы можете видеть, я использую электронное письмо в качестве имени для членства, и мне не нужно большинство других параметров.

Есть ли способ сделать звонок проще? Я не хочу инализовать члена -средства с пустыми строками и минимальными значениями даты.

заранее спасибо

Это было полезно?

Решение

Не могли бы вы адаптировать свой пользовательский сборщик, чтобы сделать для вас «наполнение»

   public class CustomMemberShipUser : MembershipUser
    {
        public CustomMemberShipUser (
            string email,
            object providerUserKey,
            ): base(
                "CustomMemberShipUser", email, providerUserKey, email, String.Empty,
                String.Empty, true, false, DateTime.MinValue, DateTime.MinValue,
                DateTime.MinValue, DateTime.MinValue, DateTime.MinValue)
        {
        }
    }

Это не решает проблему, но приполнит вашего поставщика, который станет

public override MembershipUser GetUser(string email, bool userIsOnline)
    {
        User u = _db.Users.Where(x => x.Email == email).First();
        CustomMemberShipUser customUser = new CustomMemberShipUser (u.Email, u.id);
        return customUser ;
    }

Я полагаю, что ваш пользовательский сборщик разоблачает некоторые дополнительные свойства, которые вы нам не показываете. В настоящее время вы могли бы просто вернуть члену. С вышеизложенным единственным преимуществом, который дает вам пользовательский сборщик, является более чистая конструкция в вашем пользовательском стиле Provider

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top