locked
VS2008にするとIISのWindows認証ができなくなった RRS feed

  • 質問

  • お世話になっております。ASP.Netのほうにも投稿しているのですが、

    C#の話題のためか回答がつかないため、こちらにも投稿させていただきます。

    解決しましたら両方書き込みいたしますので、よろしくお願いいたします。

    環境は以下です。

    [サーバ]

    WindowsServer2008 SP2(x86)

    IIS7

    サーバの公開用サービスはVS2005で作成(これは都合があり、変更できません)

    サーバアプリで公開しているWebサービスの関数を使用するテストアプリを作成しています。

    VS2008でテストアプリを作成して「サービス参照の追加」からwsdlファイルなどを取得してみたところ、

    「~ClientSoap」という名前のクラスが作成されました。

    ここで、もともとVS2005で作成されたテストアプリがあるのですが、そちらを見たところ、

    「~ClientSoap」というクラスは作成されておらず、Soapのサービス名の

    クラスが作成されていました。

    ここで、WebアプリはWindows認証を行っています。

    そこで、VS2008のアプリで下記のようにWindows認証をおこなう(つもりで)作成したところ、

    「このHTTP要求は、クライアントの認証方式'Anonymous'では承認されません。サーバから受信した認証ヘッダーは'Negotiate.NTLM'でした。」

    というエラーが出力されます。ソースを示します。

    ----------------------

    XXX.YYYSoapClient soap = new XXX.YYYSoapClient();
    soap.ClientCredentials.Windows.ClientCredential = new NetworkCredential( "administrator", "admin" );
    soap.Open();
    soap.TestFunction( long.Parse( txtPersonId.Text ) );
    soap.Close();

    ----------------------

    サーバ側で認証設定を「匿名認証」を有効にするとテストアプリは動作しました。

    このことから、認証の箇所でつまずいているのではないかと予想しています。

    また、VS2005で作成されたアプリの該当箇所のソースは以下のようになっています。

    ----------------------

    XXX.YYY soap = new XXX.YYY();
    soap.Credentials = new NetworkCredential( "administrator", "admin" );
    soap.TestFunction( long.Parse( txtPersonId.Text ) );
    ----------------------

    VS2008で作成させるために、アドバイスをお願いいたします。

    ※VS2005からのコンバートなどの方法ではなく、VS2008で作成を目指しています。

    2012年7月10日 10:41

すべての返信

  • こんにちは、ofen さん。

    MSDN フォーラムのご利用ありがとうございます。オペレーターの山本です。
    すでに投稿いただいているスレッドのほうに返信があるようなので、こちらのスレッドは情報分散を避けるためロックさせていただきますね。
    こちらのスレッドを参照されている方、また情報いただける方は、こちらのスレッドにお願いいたします。
    __________________________
    日本マイクロソフト株式会社 フォーラム オペレーター 山本 春海

    2012年7月11日 6:37