在请求Web服务之前检查凭据

时间:2018-04-09 09:53:06

标签: c# web-services

对于WebService,如何在请求WebService之前检查凭据?

在这个例子中,我们使用错误的密码来模拟HTTP 401 : Unauthorized.var param = DoComplexeWork();之前是否有办法验证凭证?

string UserName = "FOOBAR_USR";
string SecurelyStroredPassword = "FOOBAR_BAD_PWD";
string Domain = "FOOBAR_DOM";
string Url = "https://example.com/Foo/Bar.svc";

CredentialCache credentialCache = new CredentialCache();
credentialCache.Add(
    new Uri(Url),
    "Basic",
    new NetworkCredential(UserName, SecurelyStroredPassword, Domain)
);

var iFoo = new MyFooBarWebService();
iFoo.Credentials = credentialCache;

//Check if Credential is OK 
var param = DoComplexeWork();
var result = iFoo.CreateBar(param);

1 个答案:

答案 0 :(得分:0)

在每个请求上验证凭据。因此,您需要另一个URL来请求仅验证凭据。

根据您的网络服务,您可以提出HEAD请求。但这可能会也可能不会触发实际处理。

因为底层的HTTP协议,没有明显的简单方法可以做到这一点。