对于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);
答案 0 :(得分:0)
在每个请求上验证凭据。因此,您需要另一个URL来请求仅验证凭据。
根据您的网络服务,您可以提出HEAD请求。但这可能会也可能不会触发实际处理。
因为底层的HTTP协议,没有明显的简单方法可以做到这一点。