2012-03-28 10 views
0

Ich versuche, meinen eigenen "CreateUser" zu erstellen, indem ich die MemberShipProvider-Klasse-Methode überschreibe. Das Problem ist, dass CreateUser vom Datentyp MembershipUser ist, und ich habe kein Interesse daran, einen MembershipUser zurückzugeben, ich möchte nur wissen, ob der Benutzer erstellt wurde oder nicht, indem ich einen Bool zurückschicke. Wie kann ich das am besten erreichen?Benutzerdefinierter Membership-Anbieter, überschreiben Benutzer erstellen

public override MembershipUser CreateUser(string name, string email) 
    { 
     User u = new User 
     { 
      Email = email, 
      Name = name 
     }; 
     gdb.Users.InsertOnSubmit(u); 
     try 
     { 
      gdb.SubmitChanges(); 
      MailSender.NewMember("hej hopp"); 
     } 
     catch 
     { 
      return false; 
     } 
    } 

Antwort

0

Wenn Sie einen benutzerdefinierten Mitgliedschaftsanbieter schreiben, müssen Sie die Signaturen der in der Basisklasse definierten Methoden berücksichtigen. Sie müssen also eine Instanz von MembershipUser zurückgeben. Wenn Sie in Ihrer Anwendung nichts mit dem zurückgegebenen Wert der CreateUser-Methode tun, können Sie null oder eine Instanz von MembershipUser zurückgeben, wobei Sie nur die Felder auffüllen, die Sie im Konstruktor verwenden müssen.

+0

Das ist die Sache, wenn ich den Benutzer zuerst registriere, habe ich nicht genügend Informationen, um den Konstruktor des MembershipUser zu füllen, also kann ich ein MemreshipUser-Objekt nicht zurückgeben. –

+0

Verwenden Sie dann nur die Informationen, die Sie haben. IIRC Die Argumente des MembershipUser-Konstruktors sind für die meisten von ihnen optional. –

Verwandte Themen