Sos*_*der 9 c# cookies http azure-functions blazor
我确实在设置 cookie 时遇到了问题。我在 Azure Functions 上运行一个小型应用程序,并以静态网页作为前端,并且在登录请求时,我的函数在响应中正确返回 cookie。这是来自我的 Azure 函数的整套响应标头。
HTTP/1.1 200 OK
Date: Sun, 11 Oct 2020 20:40:16 GMT
Content-Type: application/json; charset=utf-8
Server: Kestrel
Content-Length: 180
Set-Cookie: RefreshToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJVc2VyTmFtZSI6IlNvc3NlbmJpbmRlciIsImV4cCI6IjYzNzM4MDQ2NTE3MTM3NjE4NCJ9.CCv3a41iPut4eC9jK2eqAzOLP5tWLjMlRgduSkUpS40; expires=Mon, 11 Oct 2021 20:40:17 GMT; path=/; samesite=lax
Set-Cookie: Test=Val; path=/
Access-Control-Expose-Headers: Set-Cookie
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我添加了正确的令牌以及一个小的测试 cookie,只是为了验证它是否可以与一个非常简单的 cookie 一起使用。提示一下,不是的。
这是我的要求:
可悲的是,无论我尝试什么,chrome 和 firefox 都完全忽略我的 cookie。无论我如何尝试,我都还没有成功获得一块饼干。
我现在在本地主机和 *.web.core.windows.net 静态网站上尝试过它,但我就是无法让它工作。
我认为我的后端不是罪魁祸首,因为响应标头似乎设置正确。但有些事情不太对劲。我已经阅读了很多线程,现在提到应该设置什么和不应该设置什么,我现在可能已经尝试过它们了。无论是安全标志、同站点标志等等。
我在这里缺少什么?
编辑:我在http://www.filedropper.com/cookieproblem添加了一个最小的可重现示例
跑步:
导航到包含 CookieProblem.csproj 的“CookieProblem”文件夹。打开 cmd 并使用“func start”运行它(需要 Azure Functions CLI 工具)
现在,在 VS 中运行 BlazorApp1。打开页面并保持开发工具打开。加载时,它应该向网络选项卡中名为“运行”的本地运行函数发出请求。
现在它也不应该为您设置 cookie。
Sos*_*der 13
好吧,这个问题让我非常沮丧。我在我的缩小解决方案中修改了一段时间,并添加了一个具有该fetch()功能的基本网站,因为我想知道这是否是由于 Blazor 造成的。
因此,对于fetch()代码来说,添加credentials: 'include'参数很重要。这样做之后,一切都正常了。
好吧,之后我花了很多时间在谷歌上搜索如何为 C# 执行此操作HttpClient。解决方案是使用HttpRequestMessageand 设置requestMessage.SetBrowserRequestCredentials(BrowserRequestCredentials.Include);
另外,在服务器端,您应该确保相应地配置您的 local.settings.json,以在 Json 的“Host”小节中设置“CORS”和“CORSCredentials”(在我的示例中,这是针对 Azure Function 项目的,这对你来说可能会有所不同)。
就是这样。现在 CORS cookie 可以工作了。找到这一行代码是多么美妙的一件事......
编辑:
这是我的 local.settings.json 文件的示例:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet"
},
"Host": {
"LocalHttpPort": 7071,
"CORS": "https://localhost:5001",
"CORSCredentials": true
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2892 次 |
| 最近记录: |