1

当我在我的本地主机上工作时,它完美无缺。

但是,当我将应用程序部署到另一台服务器时,它开始引发异常。

基本上,这是导致异常的指令:

HttpContext.Current.User.IsInRole(*roleName*)

其中roleName是一个字符串,表示应用程序中的不同角色。

异常触发:

System.Web.HttpUnhandledException

更新:这是对用户进行身份验证的方式。

protected void LoginControl_Authenticate(object sender, AuthenticateEventArgs e)
{
    Page.Validate();
    if (!Page.IsValid) return;

    if (MyAuthenticate(LoginControl.UserName, LoginControl.Password))
    {
        if (LoginControl.RememberMeSet == true)
        {
            createCookie(LoginControl.UserName, Convert.ToInt32(ViewState["idcustomer"]), true);
        }
        else
        {
            createCookie(LoginControl.UserName, Convert.ToInt32(ViewState["idcustomer"]), false);
        }
        e.Authenticated = true;
        Response.Redirect(FormsAuthentication.GetRedirectUrl(LoginControl.UserName, true));
    }
    else
    {
        e.Authenticated = false;
    }

如果它与用户身份验证有关,我错过了什么?提前致谢。

更新:谢谢大家。我刚刚完成了远程调试并意识到这是实际错误:

在此处输入图像描述

现在,情况是这样:用户在登录页面中通过了身份验证。所以,我认为与数据库的连接不是问题。否则,用户将无法将登录页面传递给 MasterPage(引发此错误的地方)。

我能错过什么?再次感谢,

4

2 回答 2

0

黑暗中的野刺,但内部异常可能是空引用异常,这是由于用户未在服务器上进行身份验证而导致的,因此 HttpContext.Current.User 为空。我敢打赌,这只是在实时 Web 服务器上未启用 Windows 集成身份验证或类似的身份验证设置问题。

于 2011-11-16T13:46:10.203 回答
0

这个问题的解决方案是通过 machine.config 授予完全信任并自动生成架构来创建 mysql_aspnet_membership 提供程序,而不是在数据库中手动创建成员资格表,尽管我认为这可能是创建数据库的有效方法.

后来,这个就再也没有破了。

于 2012-01-25T10:53:01.890 回答