我真的只是想知道这是否有可能。因此,我们正在将网站从经典ASP重做为ASP.NET MVC。但是,我们目前一次只做一次。我们将其分为三个新的ASP.NET MVC项目,每个项目都有各自的域。我遇到的问题是,我们要在一个页面(当前是现有的Classic ASP)上登录,然后在传递诸如SessionID之类的内容时将它们重定向到新域。
我通过在他们登录时将信息存储在DB中然后通过QueryStrings发送信息来使其正常工作。问题是经理希望我不要使用QueryString,因为那里可能会发送信息(例如UserId)。因此,他建议通过标题发送。这通过使用GET
请求并将信息添加到标头中而起作用。据我所知,我无法通过GET
进行重定向。我认为通过POST
重定向也不行。
在传递不需要QueryString的信息时,是否可以从一个域重定向到另一个域?如果您需要更多信息,请告诉我。
答案 0 :(得分:2)
您不能直接指示用户的浏览器在获取第二个网站时发送标题。基本上,您只是给它一个地址,它就会自己获取页面。
如果两个站点都具有相同的顶级域(即website1.example.com
和website2.example.com
),听起来可能是,您可以只使用存储在基本域中的cookie({ {1}})。因此流程将是-
*.example.com
标头和Set-Cookie
标头的响应(这是重定向)。Location
,基本上意味着第二个站点将获得带有第一个站点的信息的标头(*.example.com
)。重要的是要弄清楚(只是因为您引用了听起来像是安全问题的内容)-这绝对比在重定向本身中传递参数更安全-但这只是您所要求的解决方案。不要使用此方法来传递您不想公开的信息。
相关-
答案 1 :(得分:1)
有一些选择 1)如果不能使用查询字符串,则可以将值写入表单和POST(而不是GET)中。在上面放一个JavaScript以自动发布。因此,用户登录经典ASP,它将值写入下一页的表单中,然后自动提交该表单。这仍然不是超级安全,因为可以读取表单字段 2)为了提高安全性,您可以对表单中的值进行哈希处理或加密,如果要使用此路由,则可以对所有字段进行加密,然后通过查询字符串进行传递
在主系统为经典ASP之前,我们曾遇到过这种情况,而系统的新部分是MVC ASP.NET。我们在ASP端使用了一个加密组件(ASPEncrypt),并在ASP.NET中内置了解密功能,以使用户在系统之间安全地传输,同时保持对谁登录的跟踪。