HttpWebRequest可以支持基于令牌的身份验证吗?

时间:2012-03-05 21:51:17

标签: c#

我们有一个基于ruby的API,我们的C#服务需要查询使用基于令牌的身份验证。我没有在httpwebrequest方法的文档中看到它支持这一点的任何地方。还有其他选择吗?

1 个答案:

答案 0 :(得分:2)

基于令牌的身份验证并不特别。它通常仍然使用HTTP,因此HttpWebRequest应该可以正常工作。这就是基于令牌的身份验证通常发生的方式。

首先,有三个不同的方面涉及令牌或基于声明的身份验证。正在进行身份验证的客户端,以及第三方(令牌提供程序)正在进行身份验证的服务器。典型的身份验证仅包括客户端和服务器,但在基于令牌的身份验证的情况下,存在令牌提供程序。令牌提供程序对客户端是已知的,并且受服务器信任。

验证过程由客户端向令牌提供者发出HTTP请求,要求提供者向客户端提供令牌。当然,此时,客户端很可能需要向令牌提供程序进行身份验证 - 这通常使用传统的身份验证方法来完成。假设客户端向令牌提供程序进行身份验证,令牌提供程序将使用令牌进行响应。然后,客户端获取此令牌并向服务器发出包含令牌的请求。令牌已经签名,以便服务器可以告知令牌来自其可信令牌提供商以及客户端应具有的特权。

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