寻求有关此问题的建议或解决方案。
我有2个项目。如果您单击项目 A 的 URL,它应该将您重定向到项目 B(这是一个登录表单),然后在您成功输入用户名和密码后,应该再次引导您返回项目 A 继续。
第一步已完成 - 我可以正常进入登录表单(项目 B),但成功登录后,我想将用户名发送回项目 A 以表示欢迎,视图中的用户 - 这是我无法做到的做对了。
我尝试了
Session
- 这似乎不起作用。这是我在web.config
中尝试过的:
<!--
<sessionState mode="StateServer"
stateConnectionString="tcpip=loopback:42424"
cookieless="false"
timeout="20"/>
-->
我也尝试使用服务器名称来代替环回,但得到了相同的结果。
在 IIS 上,我也在应用程序上设置了服务器状态模式,但结果相同 - 它在项目 A 的会话中获得空值。
我也尝试过使用标头,但这也会向项目的 A getheader 返回空值。
有我遗漏的例子吗?我对此做了很多研究,但它对我不起作用。必须有一种方法将信息发布到另一个应用程序。
这些问题通常解决的方式是在HTTP层面。
即使您“知道”两个项目将托管在同一台计算机上,情况也可能不会永远如此。也许将来,它们可能托管在不同的计算机上,或者托管在服务器场上。
也许,在未来,程序员决定用不同的编程语言重写其中一个系统,或者使用不同的托管环境。
您最好将单独的网站/服务视为真正独立的。
通常,登录操作将浏览器重定向到登录站点时会嵌入
returnUrl
作为 URL 参数;像这样的:
https://example.com/login?returnUrl=https%3A%2F%2Fexample.org%2Ffoo%2Fbar%3Fbaz%3D0%26qux%3Dquux
请注意,我已经对
returnUrl
进行了 URL 编码。然后,登录系统可以对其进行 URL 解码,并在登录完成后将浏览器重定向回原点。
尝试使用浏览器的开发者工具 (F12) 来查看某些现有登录系统的工作原理。