对于 Web 服务
,如何在请求 Web 服务之前检查凭据?
在这个例子中,我们使用一个错误的密码来模拟一个 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);
验证每个请求的凭据。因此,您需要另一个仅验证凭据的 URL 来请求。
根据您的 Web 服务,您也许可以发出 HEAD 请求。但这也可能不会触发实际处理。
因此,由于底层HTTP协议,没有明显的简单方法可以做到这一点。