ISA Server2006部署RuoYi无法登录的问题

ISA Server2006部署RuoYi无法正常登录。每次登录都会报错如下:

无效的会话,或者会话已过期,请重新登录。
在这里插入图片描述

原因分析

在nginx中部署没有问题,在ISA Server就会报这个错。根据登录的原理,我猜测可能是headr中的Authorization没有正常在服务端接收到导致。

一点也不夸张的话,解决这个问题花了我近1天半的时间。因为ISA Server2006早已过时了,网上相关资料并不多。关键是我对ISA Server也不熟悉。

安装windows 2003 安装ISA Server2006 摸索了一天终于解决了。太难了!!!

ISA Server2006部署过程

过程不是本文重点,详细见:
《ISA Server 2006部署网站对比nginx》
https://blog.csdn.net/lxyoucan/article/details/135720658

就这一个过程就折腾了半天。

翻了很多资料,终于在这篇文章中找到了解决办法:
https://serverfault.com/questions/416156/isa-or-iis-removing-http-authorization-header-when-published

原文如下:

I had the same problem (with latest release of the asp.net web api). I tracked it down to an ISA Server 2006 publishing rule and fixed it with the following steps:

go to properties of the publishing rule and set Authentication Delegation to “No delegation, but direct Authentication of the client”
stay in the properties dialog and go to listener -> properties -> authentication -> advanced -> check the checkbox “Allow Clientauthentication via HTTP”
That did it. After that, the authorization headers were no longer dropped.

解决办法

  1. 身份验证委派:无委派,但是客户端可以直接进行身份验证
    在这里插入图片描述
  2. 身份验证: 没有身份验证
    点击高级…
    在这里插入图片描述

在这里插入图片描述
勾选 允许通过HTTP进行客户端身份验证。

总结

折腾一天多了,总算解决问题了。
最终11年前的一篇文章帮我解决了问题。
这个选项,藏的太深了,真是太难了!!!可以睡个好觉了。