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

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top