0

我为客户端构建了一个 ASP.NET webforms 应用程序,并使用 Forms 身份验证来确保安全。当我在本地运行它时(在三台不同的 PC 以及我的队友的一台 PC 上),我们可以毫无问题地登录。但是当我们将它部署在客户端的服务器上时,登录重定向失败。

我们可以看到身份验证正在工作,因为母版页更新并显示仅对经过身份验证的用户可用的选项,但表单始终重定向到登录页面。

这是 web.config 的一部分:

<authentication mode="Forms">
        <forms loginUrl="default.aspx" name=".ASPXFORMSAUTH" defaultUrl="home.aspx" slidingExpiration="true" timeout="60">
        </forms>
    </authentication>
    <authorization>
        <deny users="*" />
        <allow users="*" />
    </authorization>

有效的母版页中的代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Request.IsAuthenticated)
    {
        hylHome.Visible = false;
        hylSearch.Visible = false;
        lbtnLogout.Visible = false;
    }
    else

而且,以防万一,处理行创建身份验证:

FormsAuthentication.RedirectFromLoginPage(txtusername.Text, false);

我假设它是 IIS 服务器上某个停止重定向的设置,但我不了解服务器。任何帮助,将不胜感激。谢谢。

4

1 回答 1

0

两个更新解决了这个问题。正如 Darren Kopp 指出的,web.config 必须更新为:

<deny users="?" />

response.redirect="default.aspx"在那之后,受 Humpy 评论的启发,我在身份验证方法的末尾也遗漏了一个。

于 2013-10-24T02:31:05.517 回答