首页 文章

ASP.NET表单身份验证不适用于反向代理

提问于
浏览
2

我有一个ASP.NET应用程序 . 除了直接访问应用程序的本地用户之外,我还希望通过反向代理(在DMZ中的其他计算机上运行)将其公开给外部用户

例如,假设内部用户使用URL http://intranet1/myApplication/default.aspx,外部用户可能使用URL http://www.mycompany.com/externalApplication/default.aspx

设置URL重新创建非常简单,但打开表单身份验证时出现问题 . 如果外部用户访问URL站点,表单auth会尝试自动将它们发送到登录页面,登录页面将它们重定向到相对url /myApplication/LoginPage.aspx . 就Web应用程序而言,应用程序根位于/ myApplication not / externalApplication . 当然,通过防火墙进入的外部用户不理解此URL,因此请求失败并带有404

对此有合理的解决方案吗?

1 回答

  • 2

    您不应该重定向到“/myApplication/LoginPage.aspx”而是“〜/ Login.aspx”,因此它将被正确映射,具体取决于用户点击的URL .

    <authentication mode="Forms">
      <forms loginUrl="~/Login.aspx" timeout="2880" />
    </authentication>
    

相关问题