2010-06-15 79 views

回答

2

您需要在网站创建一个网页B站点A将用户重定向太那个设置与理想值的cookie。例如

http://siteb.com/authenticate.aspx?authtoken=15128901428901428904jasklads&returnUrl=http://siteb.com/index.aspx

authenticate.aspx会设置一个cookie,然后每一个请求会得到的authToken。

+0

好的,好主意。但在使用Cookie时我有点怀疑。如果客户端电脑禁用Cookie,或者更糟,如果黑客希望,他/她可以操纵Cookie。 此外,我希望模拟现场系统的测试环境。实际的身份验证通过HTTP头进行。在生产中,他们使用CA Inc提供的一些网关(不确定具体的产品名称)。 – 2010-07-19 02:09:38

+0

您唯一的选择是使用Cookies或将其存储在URL上,您无法命令客户端发送自定义http标题。 – bleevo 2010-07-21 10:44:25

+0

另外如果你担心cookies。 http://msdn.microsoft.com/en-us/library/aa479314.aspx 而“黑客”可以像cookie一样简单地改变http头。 – bleevo 2010-07-21 10:45:15

0

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

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

在上述任何一种方法中,必须注意不要因为信息是来自客户端(或某些黑帽)的用户输入而信任此信息而造成安全漏洞。

+0

是的..它的服务器端实现,我坚持。我如何获得一个asp.net应用程序发送自定义HTTP标头到另一个域?我正在寻找一种解决方案,将控件重定向到服务器的另一个URL,即可能使用Response.Redirect? – 2010-07-12 01:11:42

+0

是的,Response.Redirect如果数据足够小以便加密,则将加密值放在QueryString(Forget标头)上。需要从服务器A到服务器B共享密钥。同步机器密钥并使用它们来加密/解密数据。如果这不可能,或者数据太多,则在QueryString上放置一个如Guid的标记。然后在服务器之间使用一个反向通道,服务器B可以调用服务器A并询问输入请求的详细信息。这种定制解决方案非常容易出错,请务必考虑攻击媒介。看看Windows Identity Foundation。 – umbyersw 2010-07-12 06:50:56

相关问题