Benutzerdefinierte Mitgliedsrichter mit nur erforderlichen Parametern
-
25-10-2019 - |
Frage
Ich baue einen maßgefertigten Mitgliedsabwehrprovider genauer auf die GetUser -Funktion.
Deshalb habe ich einen individuellen Mitgliedsrichter.
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)
{
}
}
In der GETUSER -Funktion des Mitglieds -Providers erhalte ich die Benutzerdaten und setze sie in den benutzerdefinierten Mitarbeiter.
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 ;
}
Wie Sie sehen, verwende ich die E -Mail als Name für die Mitgliedschaft und benötige die meisten anderen Parameter nicht.
Gibt es eine Möglichkeit, den Anruf einfacher zu machen? Ich möchte den MemberSerbieter nicht mit leeren Zeichenfolgen und minimalen Datumswerten in Valous stören.
Danke im Voraus
Lösung
Könnten Sie Ihren benutzerdefinierten Mitbewohner anpassen, um die "Polsterung" für Sie zu machen
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)
{
}
}
Es löst das Problem nicht, aber es wird Ihren Anbieter aufräumen, der werden wird
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 ;
}
Ich nehme an, Ihr benutzerdefinierter Vertreter enthält einige zusätzliche Eigenschaften, die Sie uns nicht zeigen. Wie es aussieht, könnten Sie einfach einen Mitgliedsrichter zurückgeben. Mit dem oben genannten Nutzen, das Ihr Custommitgliedshipuser Ihnen bietet