为什么这只适用于localhost

时间:2011-04-22 10:02:38

标签: asp.net visual-studio login-control

从不介意它现在正在工作(不知道为什么,但没关系),谢谢大家的帮助

我写了一个代码,通过电子邮件而不是用户名登录用户,这是:

 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,提前谢谢

2 个答案:

答案 0 :(得分:0)

由于您没有发布错误,我只能猜测您的Membership.GetUserNameByEmail失败了。您与数据库的连接失败,或者您要连接的数据库中不存在该用户。

答案 1 :(得分:0)

用户根据成员资格提供程序中的ValidateUser函数的结果登录,如果您未使用自定义成员资格提供程序,则可能正在验证用户名字段。在您的测试环境中,您实际使用的电子邮件可能是某个帐户的用户名,这就是为什么它在一个地方而不是另一个地方工作的原因。