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.
解决办法
- 身份验证委派:无委派,但是客户端可以直接进行身份验证
- 身份验证: 没有身份验证
点击高级…
勾选 允许通过HTTP进行客户端身份验证。
总结
折腾一天多了,总算解决问题了。
最终11年前的一篇文章帮我解决了问题。
这个选项,藏的太深了,真是太难了!!!可以睡个好觉了。