我必须把令牌ID放在哪里?

时间:2013-10-21 17:39:52

标签: asp.net web-services security asp.net-web-api

我正在使用asp mvc web api开发Web Api。对于对用户进行身份验证,api实现了令牌系统身份验证,因此用户必须在请求上发送一个额外的参数,即它是一个键值对:token:key。

我的问题是,如果我向api发出Post请求,我必须在内容正文上发送令牌,或者我可以在url上发送它(例如miurl.com?token=aaaaaa)

谢谢

1 个答案:

答案 0 :(得分:1)

我会将令牌作为HTTP授权标头发送。这被认为是REST / HTTP的“标准”。它在HTTP标准中定义:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

更好的原因是

  • 将其放置在URL中会在浏览器历史记录等中公开它。
  • 使用邮件正文意味着您必须阅读整个邮件正文才能对其进行身份验证,而使用标题意味着您只需要阅读标题。

要提取令牌并执行身份验证/授权,您可以实现自定义AuthorizeAttribute并通过覆盖HttpContext方法从AuthorizeCore()读取令牌。