我的这个流程是这样的,有点复杂:
1. 客户打开我们的一个url
2. 在这个url的后台调用httpwebrequest到一个认证程序来认证,认证程序会换回一个加密后的cookie
3. 把这个cookie加入到Response.cookies里
4. 调用Response.Redirect到一个新的页面,这个页面会根据那个加密的cookie来判断用户是否已通过认证
现在的问题是第3步加入的cookie在那个新的页面里取不到,感觉没传过来。cookie没有设置过期日期。
----------------------------------------
你这个程序存在几个可能的问题:
1、认证程序返回的cookie的Domain必须要和newurl的Domain匹配
2、当前程序的Domain也要和newurl的Domain匹配
也就是说3者的Domain必须是匹配的,因为你返回后的cookie是存在当前response里面的,Redirect到目标地址必须是相同Domain才能获取到你保存的cookie。
不知道说明白没有。
3、你向response中添加cookie后,必须要这次响应回客户端,然后客户端再次发起访问,这个cookie才会生效。但Redirect跳转也是需要响应到客户端后然后再跳转的,但我不确定它是否带上了新的cookie。你可以用浏览器的开发人员工具查看一下。
相关推荐
### 采集需要登录后的网页(重定向后Cookie丢失问题) 在网络爬虫开发过程中,经常会遇到需要登录后才能访问的目标网站。这些网站为了保护用户隐私和数据安全,通常会在用户通过身份验证后设置Cookie来保持登录状态...
ASP.NET Session 丢失通常是由多种原因引起的,包括进程重启、Session超时、配置文件更改、应用程序更新或杀毒软件活动。在深入探讨解决方案之前,让我们先理解Session的基本原理。 Session是一种服务器端的状态...
此外,使用Response.Redirect时,所有服务器端的状态信息(如ViewState)都会丢失,因此通常需要依赖Session或Cookie来传递数据。 2. Server.Transfer: Server.Transfer是服务器端重定向,它在服务器内部直接将...
Response 对象:页面跳转详解 Response 对象是 JSP 中九个隐式对象之一,它负责处理服务器端向客户端的输出。Response 对象提供了多种方法来控制输出结果,例如将客户端重定向到另一个 URL、设置 HTTP 头、写入 ...
5. **Session对象**:存储特定用户会话的数据,会话结束后数据丢失。它提供了在多个页面间跟踪用户状态的能力。 6. **Cookie对象**:用于在客户端存储信息,通常用于持久化用户偏好设置或简单会话管理。每个Cookie...
### ASP.NET中页面跳转的三种方法:Response.Redirect、Server.Transfer与Server.Execute 在ASP.NET开发过程中,页面跳转是一项非常常见的操作。根据不同的应用场景,可以选择不同的方式来实现页面跳转,主要有`...
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, client_id, uuid, Authorization"); response.setHeader("Cache-Control", "no-cache, no-store, must-...
当检测到Session丢失时,可以使用JavaScript的`window.location.href`属性进行页面重定向,而不是使用`Response.Redirect()`方法。这是因为后者可能会被浏览器解释为新请求,从而导致SessionID的变化。 5. **...
response.set_cookie(key, value, max_age=None, expires=None, path='/', domain=None, secure=False, httponly=False, samesite=None) ``` 其中,`max_age`、`expires`、`path`、`domain`、`secure`、`httponly...
例如,在a.aspx页面中,当用户点击按钮时,可以通过`Response.Redirect()`方法将Label1的文本值添加到URL中,然后在b.aspx页面使用`Request.QueryString`获取该值。然而,QueryString的值会显示在浏览器地址栏,不...
此外,还可以使用`Response.Redirect()`方法来重定向用户到另一个URL。 2. Request对象:Request对象则用于获取客户端发送到服务器的数据,比如HTTP请求头、表单数据、查询字符串等。例如,`Request.QueryString`可...
由于浏览器收到重定向指令后会发起新的请求,因此所有服务器端的状态信息(如ViewState和Form变量)都将丢失,只能依赖Session或Cookie来传递数据。以下是一个使用Response.Redirect的例子: ```csharp protected ...
在发送页面中,可以通过`Request.Redirect()`或`Response.Redirect()`方法附带查询字符串参数,如`Request.Redirect("Default2.aspx?username=honge")`。接收页面则可通过`Request.QueryString`集合获取这些参数。...
Response.Redirect(url); } ``` 2. **接收页面** (`WebForm2.aspx`): ```csharp private void Page_Load(object sender, System.EventArgs e) { Label1.Text = Request.QueryString["name"]; Label2.Text ...
- 应用程序重启后,所有存储在Application中的数据将丢失。 - 为避免数据冲突,应使用Lock和Unlock方法进行线程安全的读写操作。 **示例:** ```csharp // 在a.aspx中设置Application变量 private void Button1_...
)和键值对来传递数据,如 `Response.Redirect("NextPage.aspx?id=123")`。这种方式简单直观,但不适合传递敏感信息,因为数据可见且易被篡改。 - QueryString集合:在代码中,可以访问Request.QueryString来获取...
在ASP.NET中,有两种主要方法实现页面重定向:`Response.Redirect()`和`Server.Transfer()`。`Response.Redirect("Default2.aspx")`会告诉浏览器去请求一个新的URL("Default2.aspx"),客户端会看到一个新的HTTP...
它提供了多种方法和属性,如Write方法用于向浏览器输出文本,Redirect方法用于重定向用户到另一个页面,以及SetCookie方法用于设置Cookie。例如,`Response.Write("Hello, World!")`会在浏览器显示"Hello, World!"。...