从不介意它现在正在工作(不知道为什么,但没关系),谢谢大家的帮助
我写了一个代码,通过电子邮件而不是用户名登录用户,这是:
protected void eLogin(object sender, EventArgs e) //allowing users to login with email
{
string uid = Membership.GetUserNameByEmail(mainLogin.UserName);
mainLogin.UserName = null;
mainLogin.UserName = uid;
}
这是登录控件:
<asp:Login ID="mainLogin" runat="server" Orientation="Horizontal"
RememberMeText="Remember me" TitleText=""
DestinationPageUrl="~/RedirectPage.aspx"
OnLoggingIn="eLogin"
>
<CheckBoxStyle CssClass="remBox" />
<LoginButtonStyle CssClass="loginButton" />
<TextBoxStyle CssClass="loginTextBox" />
</asp:Login>
但它只适用于localhost而不是实际托管。 出现问题:您的登录尝试未成功。请再试一次。
我正在使用asp.net 3.5,提前谢谢
答案 0 :(得分:0)
由于您没有发布错误,我只能猜测您的Membership.GetUserNameByEmail
失败了。您与数据库的连接失败,或者您要连接的数据库中不存在该用户。
答案 1 :(得分:0)
用户根据成员资格提供程序中的ValidateUser函数的结果登录,如果您未使用自定义成员资格提供程序,则可能正在验证用户名字段。在您的测试环境中,您实际使用的电子邮件可能是某个帐户的用户名,这就是为什么它在一个地方而不是另一个地方工作的原因。