【问题标题】:ASP.NET 4.5 Authentication Redirect Not Working When Deployed on IISASP.NET 4.5 身份验证重定向在 IIS 上部署时不起作用
【发布时间】:2013-10-09 01:28:56
【问题描述】:

我为客户端构建了一个 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 服务器上某个停止重定向的设置,但我不了解服务器。任何帮助,将不胜感激。谢谢。

【问题讨论】:

  • 登录过程中到底是什么失败了?
  • 虽然它可能无法回答这个问题,但我很确定你想要&lt;deny users="?" /&gt;
  • 您是否尝试过将 DestinationPageUrl="yourpage.aspx" 放在您的登录控件中?

标签: c# asp.net authentication iis webforms


【解决方案1】:

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

&lt;deny users="?" /&gt;

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

【讨论】:

    猜你喜欢
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2016-02-23
    • 1970-01-01
    • 2016-11-04
    • 2019-05-20
    • 1970-01-01
    • 2017-02-01
    相关资源
    最近更新 更多