Пользовательский участник с необходимыми параметрами
-
25-10-2019 - |
Вопрос
Я строю пользовательский членский проводник более точно функцию 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