Я использую адрес электронной почты в качестве моего "имени пользователя" для входа в систему. Когда пользователь входит в систему, созданный объект User имеет адрес электронной почты в качестве имени, которое является неправильным. Фактическое имя - это другое поле в БД. Как войти в систему и пройти аутентификацию по адресу электронной почты, а затем загрузить правильное имя в объекте User?
Я использую проверку подлинности с помощью пользовательских MembershipProvider и RoleProvider.
правки ниже для уточнения
У меня есть пользовательский MembershipProvider, который проверяет пользователей по адресу электронной почты и паролю. Он вызывается базовым контролем входа и регистрируется в web.config.
<asp:Login ID="AdminLogin" runat="server" MembershipProvider="AdminMembershipProvider">
</asp:Login>
Web.Config:
<authentication mode="Forms">
<forms loginUrl="Default.aspx" />
</authentication>
<membership defaultProvider="AdminMembershipProvider">
<providers>
<clear />
<add name="AdminMembershipProvider"
type="AdminMembershipProvider"
connectionStringName="EvalSysConnectionString"
/>
</providers>
</membership>
Благодаря этому мои пользователи правильно вошли в систему. Однако он возвращает Context.User.Identity.Name адреса электронной почты. У меня есть имя и фамилия, хранящиеся в БД, и я хочу, чтобы это было Имя.
Я читаю различные посты, которые, кажется, указывают на то, что мне нужно создать файл Global.asax и переопределить метод PostAutheticateRequest для этого. Однако я не знаю, как поступить с этой стратегией.
<%@ Application Language="C#" %>
<script runat="server">
protected void Application_PostAuthenticateRequest()
{
string test = HttpContext.Current.User.ToString();
}
</script>
Извините, мой вопрос был настолько расплывчатым. Я так потерян с этим, что не знаю, как написать хороший вопрос.