c# - 将授权 token 传递给 Odata 客户端

标签 c# asp.net odata

我一直在尝试使用 Odata 客户端使用授权的 ASP.NET Odata Web API。我确实知道如何为客户端设置带有 token 的 header ,但是应该将 token 保存在哪里以供重复使用?。因为必须为每个请求设置 Authorization header ,而不仅仅是一次。更准确地说,这就是我要做的:

  1. 获取用户的凭据,将其传回 API。
  2. 获取 token 。
  3. 使用 token 值设置 Odata 客户端的 header 。

我正在为第 2 步和第 3 步之间要采取的操作而苦苦挣扎: token 应该保存在哪里,以便您可以继续使用它设置 Odata 客户端 header ?

This is how I set the authorization header value.

编辑:关于评论,我可能没有明确说明问题。问题出现了,因为将为每个请求创建 Controller ,并且将在请求完成“之后的某个时间”进行垃圾回收。因此, token 值将消失。

最佳答案

看看here ,他们将其存储在 cookie 中。如果您不想在客户端公开实际 token ,请将其存储在您附近的某个地方,例如用户配置文件/ session ,或将带有生成的 ID 的 token 存储在查找表中并将 ID 保存到 Cookie。

this is another approach使用 ASP.NET Identity 和 ApplicationCookies

关于c# - 将授权 token 传递给 Odata 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44044946/

相关文章:

c# - 从 request.querystring 中删除字符

c# - ASP.NET 的共享项目

c# - 是否可以使用 Breeze js 进行 "where <property> in <set>"查询

c# - 在连续的数字系列和 LAST_INSERT_ID 中填写已删除的数字

c# - 在 .NET Core 控制台应用程序中针对 EF Core DbContext 服务错误建立依赖注入(inject)

c# - ASP.NET SqlDataSource 筛选器行为

ruby-on-rails - 在 ruby​​ on rails 中公开 OData

c# - 如何存储和序列化列表以避免长字符串

c# - 在对象成为孤立对象之前,我是否需要从对象中删除事件订阅?

odata - 如何在SEGW中正确实现$expand查询?