Zac*_*ott 3 c# asp.net authentication
使用ASP.NET表单身份验证,您将如何接受电子邮件地址和密码,使用电子邮件地址查找用户名,然后使用查找的用户名和密码登录?
我们有这个卡系统,有员工编号,但没有人能记住他们的号码.显而易见的是使用登录的电子邮件地址,但应用程序的其余部分取决于用户名是员工编号.
谢谢.代码链接/示例会很棒.
我们当前的C#解决方案以以下引用异常结束:
Response.Write(Membership.GetUser().UserName);
但这两个都很好:
string userName = Membership.GetUserNameByEmail(emailAddress);
bool successfulLogin = Membership.ValidateUser(userName, password);
Bre*_*itz 10
不要更改现有的登录控件,只需覆盖"Authenticate"事件即可执行新的自定义逻辑.另外,FormsAuthentication.SetAuthCookie()函数应该可以帮助您覆盖的用户名的问题.
我没有编译这个,但你应该明白这个想法:
private void OnAuthenticate(object sender, AuthenticateEventArgs e)
{
bool successfulLogin = false;
string userName = Membership.GetUserNameByEmail(Login1.UserName); //the email address
successfulLogin = Membership.ValidateUser(userName, Login1.Password);
if(successfulLogin)
FormsAuthentication.SetAuthCookie(userName, true);
e.Authenticated = successfulLogin;
}
Run Code Online (Sandbox Code Playgroud)