【问题标题】:why does this only work on localhost为什么这只适用于本地主机
【发布时间】:2011-04-22 10:02:37
【问题描述】:

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

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

 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>

但它只适用于本地主机而不是实际的主机。 这是出了什么问题:您的登录尝试不成功。请再试一次。

我正在使用 asp.net 3.5,在此先感谢

【问题讨论】:

  • 你的问题结构不正确。究竟是什么不适用于实际托管?
  • 您确定您登录的用户在两个环境中都存在吗?
  • 如果您找到了解决方案并且它不是现有答案之一,请自己发布然后接受它,而不是在标题中添加[solved]。跨度>
  • @wahtever - 当您解决问题时,本网站上的约定是接受解决问题的答案,或者选择解决问题的最佳答案。带有已接受答案的问题会通过颜色编码清楚地标记出来。
  • @ChrisF - 你比我快四秒!

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


【解决方案1】:

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

【讨论】:

  • 登录失败您的登录尝试不成功。请再试一次
  • 我已经在使用这个了:` `.
  • 我认为“conn”类似于:Data Source=SERVERNAME;Initial Catalog=DBNAME;Uid=USERNAME;Pwd=PASSWORD。您需要添加日志记录。您是否成功连接到数据库?甚至调用了 eLogin 吗?您的用户是否存在于数据库中?
  • 数据库已经过测试并且可以正常工作,我可以使用用户名登录,但我无法在主机上使用电子邮件
【解决方案2】:

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

【讨论】:

  • 这是我自己使用的帐户,我输入的用户名与电子邮件不同(不是管理员帐户。我只创建了一个)。
猜你喜欢
  • 1970-01-01
  • 2014-10-01
  • 2018-11-16
  • 2017-02-25
  • 2023-04-05
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多