Response.Redirect不保留会话Cookie

时间:2016-11-27 21:12:34

标签: c# .net session redirect cookies

在Application_AuthenicationRequest()的Global.asax.cs文件中,我调用

Response.Redirect("~/?someparameter=parameter", false);
Context.ApplicationInstance.CompleteRequest();

在方法调用SingleSignOn()的同一个Global.asax.cs文件中,我创建并保存会话cookie

Response.Cookie.Add(cookie);

在同一个项目中,我有一个名为HomeController.cs的类,它包含一个名为Index()的方法,该方法包含以下代码行:

var queryString = System.Web.HttpContext.Current.Request.Params["parameter"];

应该由

调用
Response.Redirect("~/?someparameter=parameter", false);

位于Global.asax.cs文件中。问题似乎是会话cookie没有保留,因此甚至没有达到HomeController.Index()。当我在我的机器上本地运行代码时,一切都按照我的预期运行。但是,一旦部署,呼叫就会失败。

1 个答案:

答案 0 :(得分:1)

var queryString = System.Web.HttpContext.Current.Request.Params["parameter"];

应该是

var queryString = System.Web.HttpContext.Current.Request.Params["someparameter"];

如果你想得到someparameter的实际值

您的响应需要完成给客户端才能设置cookie。

通过致电;

Context.ApplicationInstance.CompleteRequest();

你结束了回复。

阅读本文;

http://www.aspnettutorials.com/tutorials/network/cookies-csharp/

您也可以只在同一个域上设置Cookie,因此如果您要更改域名,浏览器将无法设置Cookie。我不确定你为什么在响应中使用〜。

此外,有些浏览器不会在重定向上设置Cookie,因此请使用Google搜索哪些浏览器接受它。

希望这有帮助。