客户需求用Email登录,Login控件是用的用户名登录,只有自己写了,还得用成员身份服务,想了一个折中的方法:先根据Email获取用户名,再判断此用户名和密码是否合法,合法就让其为登录状态。
这是一个登录方法,next是在登录页面中的一个选择框,选择是否记住,下次自动登录,
这个方法里面的重点就是FormsAuthentication.RedirectFromLoginPage(_username, next);将在合法登录后转向到web.config中设置的地址页面
web.config:
authentication mode="Forms" >
<forms loginUrl="Login.aspx" defaultUrl="userManager/Default.aspx" />
</authentication>
代码:
public bool Login(bool next)
{
bool isok = false;
_username = Membership.GetUserNameByEmail(_email);
if (Membership.ValidateUser(_username, _password))
{
isok = true;
FormsAuthentication.RedirectFromLoginPage(_username, next);
}
else
{
_errMessage = "邮箱或密码无效,请重新输入";
}
return isok;
}