将字符串从一个 ASP.NET MVC 项目传输到同一 IIS Web 服务器上托管的另一个项目(两个不同的解决方案)

问题描述 投票:0回答:1

寻求有关此问题的建议或解决方案。

我有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 返回空值。

有我遗漏的例子吗?我对此做了很多研究,但它对我不起作用。必须有一种方法将信息发布到另一个应用程序。

c# asp.net-mvc web-config
1个回答
0
投票

这些问题通常解决的方式是在HTTP层面。

即使您“知道”两个项目将托管在同一台计算机上,情况也可能不会永远如此。也许将来,它们可能托管在不同的计算机上,或者托管在服务器场上。

也许,在未来,程序员决定用不同的编程语言重写其中一个系统,或者使用不同的托管环境。

您最好将单独的网站/服务视为真正独立的。

通常,登录操作将浏览器重定向到登录站点时会嵌入

returnUrl
作为 URL 参数;像这样的:

https://example.com/login?returnUrl=https%3A%2F%2Fexample.org%2Ffoo%2Fbar%3Fbaz%3D0%26qux%3Dquux

请注意,我已经对

returnUrl
进行了 URL 编码。然后,登录系统可以对其进行 URL 解码,并在登录完成后将浏览器重定向回原点。

尝试使用浏览器的开发者工具 (F12) 来查看某些现有登录系统的工作原理。

© www.soinside.com 2019 - 2024. All rights reserved.