【发布时间】:2017-10-18 02:27:12
【问题描述】:
我一直在尝试通过使用 Odata 客户端来使用授权的 ASP.NET Odata Web API。我确实知道如何为客户端设置带有令牌的标头,但是应该将令牌保存在哪里以供重复使用?。因为每个请求都必须设置 Authorization 标头,而不仅仅是一次。更准确地说,这就是我的目的:
- 获取用户凭据,将其传回 API。
- 获取令牌。
- 使用令牌值设置 Odata 客户端的标头。
我正在努力处理第二步和第三步之间要采取的行动:令牌应该保存在哪里,以便您可以继续使用它设置 Odata 客户端标头?
This is how I set the authorization header value.
编辑:关于评论,我可能没有明确说明问题。问题出现了,因为控制器将为每个请求创建,并且将在请求完成后的“某个时间”进行垃圾收集。所以,代币价值就没有了。
【问题讨论】:
-
你不能把它存储在一个字符串变量中吗?
-
您是否明确需要从服务器端调用 api,或者从客户端调用它也是可行的,例如通过 ajax 调用?
-
@AlexanderClare,不会使用 Ajax 调用,API 将仅通过使用 Odata 客户端来使用。
-
看看here,他们将其存储在cookie中。如果您不想在客户端公开实际令牌,请将其存储在您的例如附近的某个地方。用户配置文件/会话,或将生成的 id 令牌存储在查找表中并将 id 保存到 cookie。
-
这是another approach 使用 ASP.NET 身份和 ApplicationCookies