14

IIS6(XP Pro SP2)で実行されている.NET 2.0 Webサイト(VB)と、ASMXWebサービスをホストしている.NET3.5(もちろん、IISの[ASP.NET]タブで.NET2として構成されている)があります。

Chromeでは、ASMXを呼び出して、Webメソッドを正常に呼び出すことができます。ただし、コードでWebメソッドを呼び出すと、.NET2.0Webサイトから次のようになります。

リクエストはHTTPステータス401:Unauthorizedで失敗しました。

これを回避するにはどうすればよいですか?

4

5 に答える 5

22

オブジェクトを初期化するときに、アプリケーションでクレデンシャルを設定する必要がありwebServiceます。

何かのようなものwebService.UseDefaultCredentials = true

これにより、アプリケーションを実行している現在のユーザーにリクエストのクレデンシャルが設定されます。

于 2010-07-19T16:14:51.327 に答える
4

あなたはこれを使うことができます:

webservice.UseDefaultCredentials = true;

動作しない場合は、上記のコードの代わりに以下のコードを使用してください

webservice.Credentials = new NetworkCredential("userName", "password", "domain");
webservice.PreAuthenticate = true;

注:ユーザー名パスワードとドメインは、Webサービスにアクセスするユーザーのユーザー資格情報です。

したがって、ユーザーがWebサービスにアクセスするためのアクセス許可を持っていることを確認してください

多分ユーザーはWindowsユーザーです

ドメインは次の場所から取得できます。「MyComputer」を右クリックすると、ドメインはコンピュータ名またはワークグループになります。

于 2016-07-27T13:56:25.940 に答える
3

IIS 7では、匿名認証を有効にすると、デバッグできるようになります。

于 2012-10-01T20:59:36.757 に答える
3
webService.UseDefaultCredentials = true

これは私のために働いた。

于 2013-06-04T21:44:08.763 に答える
0

私はこの方法でテストしています:

CheckListService.CheckList chkSrvice = new CheckListService.CheckList() {
    UseDefaultCredentials = true };
于 2014-06-29T04:08:28.750 に答える