通过HTTP头将值从一个ASP.NET应用程序传递到另一个应用程序

3
我们正在企业环境中实施单点登录机制,其中令牌通过HTTP头在应用程序之间共享。现在,为了进行集成测试,我需要编写一个应用程序来模拟这个过程。
在ASP.NET中有没有一种方法可以重定向到另一个网页并在此过程中传递自定义的HTTP头?
谢谢。
2个回答

2

好的,不错的想法。但是我对使用cookies有些怀疑。如果客户端PC禁用了cookies,或者更糟糕的是,如果黑客希望,他/她可以操纵cookies。此外,我希望为实时系统模拟测试环境。实际的身份验证是通过HTTP头完成的。在生产中,有一个设置,他们使用CA Inc提供的一些网关(不确定确切的产品名称)。 - Srikanth Venugopalan
你唯一的选择是使用Cookies或将其存储在URL上,没有办法命令客户端发送自定义HTTP标头。 - bleevo
此外,如果您担心Cookie问题,请参考http://msdn.microsoft.com/en-us/library/aa479314.aspx。而且,“黑客”可以像操作Cookie一样轻松地更改HTTP头。 - bleevo

0

服务器可以在重定向时将HTTP头发送给客户端,但客户端不会将其发送回其他远程服务器。

在这种情况下,理想的解决方案是使用Cookie或QueryString变量。Cookie可能会遇到跨域问题,并且如果主机名足够不同,则会变得复杂。

在任何这些方法中,必须小心,不要信任此信息,因为它是来自客户端(或某些黑客)的用户输入。


是的...我被卡在了服务器端实现上。如何让一个asp.net应用程序向另一个域发送自定义HTTP标头?我正在寻找一种解决方案,即我们从服务器将控件重定向到另一个URL,例如使用Response.Redirect? - Srikanth Venugopalan
是的,如果数据足够小以加密,则使用Response.Redirect,将加密后的值放在QueryString中(忘记头文件)。需要从服务器A共享密钥到服务器B。同步机器密钥并使用它们来加密/解密数据。如果不可能或者数据量太大,则在QueryString中放置一个令牌,例如Guid。然后,在服务器之间使用反向通道,其中服务器B可以调用服务器A并询问传入请求的详细信息。这种自定义解决方案非常容易出错,请务必考虑攻击向量。查看Windows Identity Foundation。 - umbyersw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接