我有一个的单点登录溶液,这意味着用户将登录到一个网站和被重定向到另一个。当我将用户重定向我要沿着这可以用来验证用户的身份验证状态一键通。

大多数的单个的实施例中登录我读显示登录网站传递所述加密密钥有一个查询字符串值。我不认为这是一个很好的解决方案,因为它不是很REST-FUL或任何你想将它命名。相反,我想传递的 POST 数据加密的密钥。因此,当用户登录时,他们被发布到另一个URL。

不幸的是,我不知道(但)如何使用Response.RedirectServer.Transfer做到这一点。我认为Response.Redirect穿过它重定向当沿着相同的POST数据。

有人是否知道如何向网站用户重定向在asp.net,改变POST数据,同时重定向?

(奖金问题:你可以改变一个GET到POST同时重定向)

有帮助吗?

解决方案

Server.Transfer具有维持在过渡形式的数据(POST值)的能力,因为它本质上是转移由用户发送到一个新的端点相同的请求。

由于重定向基本上发送一个响应返回给最终用户的,其说“而不是到这里” Request.Redirect不能坚持POST数据。然后客户端发起到新端点的新要求。客户端不重新提交所述第二,独立的请求POST数据。

然而,无论是POST也不GET单独都或多或少的RESTful - 两者都是数据串,就在请求的稍微不同的部分。有个整洁,查询字符串少的URL可能“看REST-Y”,但它是化妆品。

这里的的两种不同的方法是如何工作的示意图。正如你所看到的,在重定向的情况下,改变POST数据简直是不可能的,因为它是在客户的手中,以形成对目标URL了新的要求;而在转移的情况下,这是没有意义的(即使它在技术上是可能的),因为如果你确实需要通过额外的数据到新的处理程序,你可以这样做你自己:

替代文字http://rexmorgan.net/rr_vs_st.jpg

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top