MembershipUser.Email возвращает ноль, даже если электронная почта хранится в базе данных.
Моя проблема в том, что я не могу получить доступ к электронной почте пользователя при использовании метода Membership.GetUser(username). Мне это нужно, когда я сбрасываю пароль. Я получаю имя пользователя в запросе POST. Мой код выглядит так:
...
System.Web.Security.MembershipUser user = System.Web.Security.Membership.GetUser(model.UserName);
if (user != null)
{
string emailAddress = user.Email;
...
Я уверен, что пользователь, которому я пытаюсь сбросить пароль, хранит электронную почту в базе данных, но когда я хочу ее получить, user.Email имеет значение null.
Может ли кто-нибудь помочь мне с этой проблемой? Заранее спасибо.
1 ответ
Методы, которые вы используете, предназначены для традиционного членства в ASP.NET, а не для SimpleMembership. Вот способ получить эту информацию от SimpleMembership.
var user = context.UserProfiles.SingleOrDefault(u => u.UserName == username);
var email = user.Email;
Вы можете прочитать больше о доступе и настройке UserProfile здесь.
Здесь также есть статья о настройке сброса пароля для SimpleMembership, а исходный код доступен здесь.