如何从RESTful服务发送安全令牌?

时间:2012-09-26 16:37:03

标签: security http rest asp.net-web-api restful-authentication

我正在使用ASP.NET Web API和基于自定义令牌的身份验证构建RESTful服务。客户端将在第一次呼叫时发送凭据。该服务将使用用户详细信息创建加密令牌,此标记将从此时开始用于身份验证。现在服务需要将此令牌发送回客户端。最初,我将令牌保存在HTTP自定义响应头中,以便客户端可以独立于服务返回的数据读取值。当客户端和服务位于同一个域中时,这种方法很有效,但在跨域方案中失败。我有CORS启用我的服务并添加了各种标题,如“Access-Control-Expose-Headers”,“Access-Control-Allow-Origin:*”等。但是跨域客户端无法读取自定义响应头我创建的是“SecureToken:”。我在几篇帖子中看到,Web浏览器在跨域方案中读取自定义响应标头时遇到一些问题。所以现在我正在考虑通过服务发送的所有ViewModel /数据对象的公共基类发送安全令牌。

从这个背景来看,我有几个问题:

  1. 发送自定义安全令牌的最佳位置是什么。它是响应头还是ViewModel / data类的基类中的公共属性?

  2. 是否有标准的HTTP响应标头,我可以使用它来发送令牌和自定义信息,以便即使是跨域客户端也可以读取它?

  3. 任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:3)

Authorization标题适用于此目的。请查看此链接中的section 14.8,了解有关如何使用它的详细信息。