在 HttpCookie 中存储值
Storing Value in HttpCookie
使用 MVC。
Function Login(ByVal token As String) As ActionResult
Using client As New WebClient
Try
Dim jsonResponse As String = client.DownloadString(URL & "/Getuser&token=" & token)
Dim obj As UserInfo = Newtonsoft.Json.JsonConvert.DeserializeObject(Of UserInfo)(jsonResponse)
Response.Cookies.Add(New HttpCookie("token", token))
Response.Cookies.Add(New HttpCookie("user_id", obj.id))
Return Json(obj)
Catch ex As WebException
Return Content("ERROR")
Catch ex As Exception
Return Content("ERROR")
End Try
End Using
End Function
我正在向此函数发送令牌。
然后使用这个令牌从某个API
获取用户信息
然后将此令牌存储在 HttpCookie 中
所有这一切已经运行了将近一个月,
直到它停止工作。
当我调试时,token
有一个值,并将其存储在 HttpCookie 中,但是当我调用 Request.Cookies("token").Value
时,它返回 ''
如有任何帮助,我们将不胜感激。
我在令牌上做了跟踪..
我正在将参数“token”写入文件,然后再将其存储在 cookie 中。
然后我将 cookie Request.Cookies("token").Value
写入文件,
Function Login(ByVal token As String) As ActionResult
WriteToFile("TOKEN RECEIVED = ", token)
Using client As New WebClient
Try
Dim jsonResponse As String = client.DownloadString(URL & "/Getuser&token=" & token)
Dim obj As UserInfo = Newtonsoft.Json.JsonConvert.DeserializeObject(Of UserInfo)(jsonResponse)
Response.Cookies.Add(New HttpCookie("token", token))
Response.Cookies.Add(New HttpCookie("user_id", obj.id))
WriteToFile("TOKEN COOKIE = ", Request.Cookies("token").Value)
Return Json(obj)
Catch ex As WebException
Return Content("ERROR")
Catch ex As Exception
Return Content("ERROR")
End Try
End Using
End Function
它 returns 以下内容:
TOKEN RECEIVED = X132WEeRT3AASDV
TOKEN COOKIE =
当我尝试同时编写请求和响应 Cookie 时:
WriteToFile("TOKEN COOKIE = ", Request.Cookies("token").Value)
WriteToFile("TOKEN COOKIE = ", Response.Cookies("token").Value)
Request.Cookies("token").Value Returns 空字符串
Response.Cookies("token").Value Returns 实际值
确保仅在实际 Http 请求期间访问 cookie。也许您已经更改了调用此函数的方式(或位置)。
也许你的 cookie 一个月后就过期了?使用 cookie 时不要忘记设置到期日期,并检查网络浏览器设置(例如:如果您使用 "tor browser bundle",这可能是一个问题)。
HttpCookie myCookie = new HttpCookie("UserSettings");
myCookie["Font"] = "Arial";
myCookie["Color"] = "Blue";
myCookie.Expires = DateTime.Now.AddDays(1d);
Response.Cookies.Add(myCookie);
这是一个关于 SO 的老问题,但对于那些感兴趣的人,.NET 团队已经创建了一种新方法来正确处理 cookie。
这在 .NET 4.7.1 中可用,而不是更早的版本:
请参阅此处的 ASP.NET HttpCookie 解析 部分
https://blogs.msdn.microsoft.com/dotnet/2017/09/13/net-framework-4-7-1-asp-net-and-configuration-features/
使用 MVC。
Function Login(ByVal token As String) As ActionResult
Using client As New WebClient
Try
Dim jsonResponse As String = client.DownloadString(URL & "/Getuser&token=" & token)
Dim obj As UserInfo = Newtonsoft.Json.JsonConvert.DeserializeObject(Of UserInfo)(jsonResponse)
Response.Cookies.Add(New HttpCookie("token", token))
Response.Cookies.Add(New HttpCookie("user_id", obj.id))
Return Json(obj)
Catch ex As WebException
Return Content("ERROR")
Catch ex As Exception
Return Content("ERROR")
End Try
End Using
End Function
我正在向此函数发送令牌。
然后使用这个令牌从某个API
获取用户信息然后将此令牌存储在 HttpCookie 中
所有这一切已经运行了将近一个月, 直到它停止工作。
当我调试时,token
有一个值,并将其存储在 HttpCookie 中,但是当我调用 Request.Cookies("token").Value
时,它返回 ''
如有任何帮助,我们将不胜感激。
我在令牌上做了跟踪..
我正在将参数“token”写入文件,然后再将其存储在 cookie 中。
然后我将 cookie Request.Cookies("token").Value
写入文件,
Function Login(ByVal token As String) As ActionResult
WriteToFile("TOKEN RECEIVED = ", token)
Using client As New WebClient
Try
Dim jsonResponse As String = client.DownloadString(URL & "/Getuser&token=" & token)
Dim obj As UserInfo = Newtonsoft.Json.JsonConvert.DeserializeObject(Of UserInfo)(jsonResponse)
Response.Cookies.Add(New HttpCookie("token", token))
Response.Cookies.Add(New HttpCookie("user_id", obj.id))
WriteToFile("TOKEN COOKIE = ", Request.Cookies("token").Value)
Return Json(obj)
Catch ex As WebException
Return Content("ERROR")
Catch ex As Exception
Return Content("ERROR")
End Try
End Using
End Function
它 returns 以下内容:
TOKEN RECEIVED = X132WEeRT3AASDV
TOKEN COOKIE =
当我尝试同时编写请求和响应 Cookie 时:
WriteToFile("TOKEN COOKIE = ", Request.Cookies("token").Value)
WriteToFile("TOKEN COOKIE = ", Response.Cookies("token").Value)
Request.Cookies("token").Value Returns 空字符串
Response.Cookies("token").Value Returns 实际值
确保仅在实际 Http 请求期间访问 cookie。也许您已经更改了调用此函数的方式(或位置)。
也许你的 cookie 一个月后就过期了?使用 cookie 时不要忘记设置到期日期,并检查网络浏览器设置(例如:如果您使用 "tor browser bundle",这可能是一个问题)。
HttpCookie myCookie = new HttpCookie("UserSettings");
myCookie["Font"] = "Arial";
myCookie["Color"] = "Blue";
myCookie.Expires = DateTime.Now.AddDays(1d);
Response.Cookies.Add(myCookie);
这是一个关于 SO 的老问题,但对于那些感兴趣的人,.NET 团队已经创建了一种新方法来正确处理 cookie。
这在 .NET 4.7.1 中可用,而不是更早的版本:
请参阅此处的 ASP.NET HttpCookie 解析 部分 https://blogs.msdn.microsoft.com/dotnet/2017/09/13/net-framework-4-7-1-asp-net-and-configuration-features/