-2

URL がhttpsで始まる Web サービスのWeb 参照を追加しました。そして、次のC#コードで呼び出そうとしています

testwebservices.BasicHttpBinding_GDataService webservice = new testwebservices.BasicHttpBinding_GDataService ();
Uri uri = new Uri(webservice.Url);            
CredentialCache cache = new CredentialCache();
cache.Add(uri, "Negotiate", new NetworkCredential("username", "password", "domainName"));
webservice.Credentials = cache;

var response = webservice.GetMethods();
return response;

次のエラーが表示されます

The request failed with HTTP status 401: Unauthorized.

その理由は、「BasicHttpSecurityMode がトランスポートとして設定されていない」ためだと思います (サービス参照として追加すると可能です)。それを設定する方法が見つかりませんでした。それとも、これは達成できないのでしょうか? これは VS.Net 2005 プロジェクトです。

更新: 以下も追加しましたが、それでも同じエラーが発生します

webservice.UseDefaultCredentials = true
var response = webservice.GetMethods();

作業バージョン: 次のコードが動作し始めました。@ user469104 に感謝

testwebservices.BasicHttpBinding_GDataService webservice = new testwebservices.BasicHttpBinding_GDataService ();
webservice.Credentials = new NetworkCredential("username", "password");
var response = webservice.GetMethods();
4

1 に答える 1