2017-02-24 5 views
0

Ich verwende die Membership.GetUser (User.Identity.Name) .Email-Methode, um die aktuelle E-Mail-Adresse des Benutzers zu ermitteln, aber das Timing ist abgelaufen, ich habe nur eine Zeile. auf dem ich erklären und den Rückgabewert des Verfahrens auf eine Variable Hier ist meine eine Zeile Code string userEmail = Membership.GetUser(User.Identity.Name).Email;,Die aktuelle E-Mail-Adresse des angemeldeten Benutzers wird entfernt

ich diesen Code zuweisen haben versucht, sowohl mit oder ohne den Benutzernamen Parameter. Ich habe auch versucht, zuerst zu überprüfen, ob der Benutzer authentifiziert ist, aber sobald es zu dieser Zeile kommt, habe ich es auch ausprobiert.

Hinweis: Windows Auth auf dem Web-App verwendet wird

+0

überprüfen, ob die Datenbankverbindung unterbrochen ist. –

Antwort

1

Membership von ASP.NET-Mitgliedschaft ist nicht Identität. Sie müssen verwenden:

var user = UserManager.FindById(User.Identity.GetUserId()); 

Dann greifen Sie die Email Eigenschaft aus, dass das Benutzerobjekt.

UPDATE

ich durch Ihre Nutzung des [asp.net-Identität] Tages geworfen wurde. Dies gilt jedoch in allen Punkten. Membership stammt von einem völlig anderen Authentifizierungssystem als Windows Auth. Wenn Sie Windows Auth verwenden, stammen Ihre Benutzerinformationen von AD, Sie müssen also einfach eine UserPrincipal Erweiterung hinzufügen, wenn Sie weitere Informationen benötigen. Siehe my answer in this related question.

+0

Vielen Dank @Chris Pratt dies hat sehr geholfen, es gibt tatsächlich einen bestehenden AD-Service in meiner Organisation, ich habe es nur benutzt, um alle AD-Benutzer bezogenen Informationen zu bekommen, Sie antworteten, wies mich auf die richtige Richtung – Ronny

Verwandte Themen