加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net单点登录不工作

发布时间:2020-12-16 03:47:37 所属栏目:asp.Net 来源:网络整理
导读:代码发布后,我们两个站点之间的单点登录停止了工作.两个站点都在同一域的不同子域上运行.子域x被用作所有其他应用程序的服务器上的标志.我无法完全理解为什么会出现这种情况.在两个站点的web.config中,机器和解密密钥是相同的.验证设置为SHA1,解密设置为AES.
代码发布后,我们两个站点之间的单点登录停止了工作.两个站点都在同一域的不同子域上运行.子域x被用作所有其他应用程序的服务器上的标志.我无法完全理解为什么会出现这种情况.在两个站点的web.config中,机器和解密密钥是相同的.验证设置为SHA1,解密设置为AES.身份验证配置如下:

X:

<authentication mode="Forms">
    <forms loginUrl="~/Account/LogOn" timeout="2880" protection="All" name="Domain.ASPXAUTH" path="/" domain="domain.com" />
</authentication>

Y:

<authentication mode="Forms">
    <forms loginUrl="https://x.domain.com/Account/LogOn" timeout="2880" protection="All" name="Domain.ASPXAUTH" path="/" domain="domain.com" defaultUrl="http://x.domain.com/" />
</authentication>

SSO工作正常,直到今天早上.我不确定代码发布到底发生了什么变化,并且在解决问题时遇到了问题.这两个应用程序当前正在不同的应用程序池上运行(一个是x是.net 4.0,而y是.net 2.0),当我将它们切换到使用相同的应用程序池时,SSO工作.但是,这不是一个选项,因为其他站点中使用的库之一只能在.NET 2.0上运行.我还尝试在顶级和网站级别的IIS7管理器中强制执行机器和解密密钥以及验证和解密算法,但没有成功.

在转到x.domain.com后尝试访问y.domain.com时,浏览器会重定向回登录页面,并且事件日志中会出现以下异常:

Forms authentication failed for the
request. Reason: The ticket supplied
was invalid.

有任何想法吗?

解决方法

你怀疑配置也发生了变化吗?因为你真的需要在表单部分:

enableCrossAppRedirects="true"

编辑:还要确保他们使用相同的加密密钥:

<system.web>
   <machineKey validationKey="BLAHBLAHBLAHBLAH" decryptionKey="BLAHBLAHBLAH" validation="SHA1" decryption="AES"/>
</system.web>

听起来重定向工作正常,并且在尝试读取票证时会抛出错误.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读