c# - HttpWebRequest 可以支持基于 token 的身份验证吗?

标签 c#

我们有一个基于 ruby​​ 的 API,我们的 C# 服务需要查询它,该 API 使用基于 token 的身份验证。我在 httpwebrequest 方法的文档中没有看到它支持此功能。有替代方案吗?

最佳答案

基于 token 的身份验证没什么特别的。它通常仍然使用 HTTP,因此 HttpWebRequest 应该可以很好地工作。这就是基于 token 的身份验证通常发生的方式。

首先,三个不同的参与方参与基于 token 或基于声明的身份验证。正在对其进行身份验证的服务器、正在进行身份验证的客户端以及第三方( token 提供者)。典型的身份验证仅包括客户端和服务器,但在基于 token 的身份验证的情况下,存在 token 提供者。 token 提供者为客户端所知,并受到服务器信任。

客户端向 token 提供者发出 HTTP 请求,要求提供者向客户端提供 token ,从而进行身份验证过程。当然,此时,客户端很可能需要向 token 提供者进行身份验证 - 这通常是使用传统的身份验证方法来完成的。假设客户端向 token 提供者进行身份验证, token 提供者将使用 token 进行响应。然后,客户端获取此 token 并向服务器发出包含该 token 的请求。该 token 已被签名,以便服务器可以知道该 token 来自其受信任的 token 提供者以及客户端应具有哪些权限。

长话短说,HttpWebRequest 应该完全足够了。唯一的问题是您必须了解服务器和 token 提供程序的所有细节,例如客户端应该如何向 token 提供程序进行身份验证(基本 HTTP 身份验证?发布用户名/密码?)、 token 如何提供者使用 token 进行响应(包含在响应中?设置 cookie?),服务器如何期望客户端使用 token 进行身份验证(将 token 发布到服务器?使用 token 设置 cookie?)等。

关于c# - HttpWebRequest 可以支持基于 token 的身份验证吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9574577/

相关文章:

c# - Powerpoint编辑如何将一个形状从一张幻灯片复制到另一张幻灯片

c# - 给定一个Path,如何判断它是目录还是文件

c# - 使用 foreach 迭代 IQueryable 会导致内存不足异常

c# - OleDb连接到 MS Access : SQL query like clause with escape characters and wildcards

c# - Linq to Entity Join 和 Group By

c# - 如何将 "reference"分配给 C# 中的类字段?

c# - 将列表框项动态添加到现有列表框项

c# - 如何按列分隔DataTable并存储以备后用

c# - 确定数据表中的重复项

C# httpwebrequest 和 javascript