【问题标题】:Customizing Header of a Web API Requests via JQuery/JavaScript (AJAX) or WinForms通过 JQuery/JavaScript (AJAX) 或 WinForms 自定义 Web API 请求的标头
【发布时间】:2012-06-15 06:06:45
【问题描述】:

我正在学习和使用Web API,需要实现以下身份验证机制

对 Web API 的第一次调用将是握手(登录和令牌 分享)。 Web API 的登录方法将被正确调用 凭据,一旦获得批准,基于 GUID 的令牌将返回给 客户端(基于 Jquery 或 Windows)。令牌将在一段时间后过期 可配置时间。

到那时,客户端应该能够与 WebAPI 进行通信 与每个请求共享相同的令牌值,因此不需要 对每个调用进行身份验证。

对于每次调用都有 Token,很有可能在每个调用中都有它 QueryString 或在 Web API 方法的每个参数中都有它。

但是,我正在寻找可以通过 JQuery(使用 AJAX 调用)或基于 Windows 的客户端将 Token 嵌入 HTTPRequestHeader 的可能性。我希望你们能帮助我识别提前实施此系统的公平方法和风险。

【问题讨论】:

    标签: c# jquery httpwebrequest http-headers asp.net-web-api


    【解决方案1】:

    使用 jQuery Ajax 时,您可以使用 beforeSend method 修改 jQuery 中的标头。

    使用HttpClient添加/修改HTTP请求头没有问题。

    也许Thinktecture.IdentityModel.Http 很快就会支持您描述的场景:Thread: Web API Sample for Thinktecture.IdentityModel at WebApiContrib Google Group

    Thinktecture.IdentityModel.Http 中已经实现了一些基于令牌的身份验证机制,例如 SWT 和 SAML 1.1 / 2.0。

    【讨论】:

      【解决方案2】:

      您可以使用使用纯文本发送用户名和密码的 HTTP 身份验证,因此您可以使用 SSL 来保护它。

      可以找到一篇优秀的文章here

      【讨论】:

      • 这将彻底改变在目标 Web API 中实现身份验证的方式。我需要遵守既定的协议。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-02
      • 1970-01-01
      • 2011-01-10
      • 2011-06-10
      相关资源
      最近更新 更多