none
Windows認証でのXML Webサービス接続について RRS feed

  • 質問

  • Win2008 + IIS7.0
    Visual Studio 2008

    以下の構成でDBにアクセスするシステムを構築しています。

    Windowsフォームアプリケーション

    XMLWebサービス

    SQLServer2008


    以前はIISの匿名認証を有効な状態で正しく動作していたシステムですが、
    実行しているドメインユーザー毎に処理を分ける必要が発生しました。

    ドメイングループA:参照権限
    ドメイングループB:追加、更新、削除権限

    SqlServer側の設定は完了しています。

    今回変更した内容は以下のとおりです。
    web.Config内では
    接続のプロパティを Integrated Security=true
    としてあります。

    IISの認証はWindows認証とASP.Net偽装のみ有効にし、仮想ディレクトリの
    アクセス権は、それぞれのグループに「読み取りと実行」を与えています。


    私の認識では、上記の設定で実際に実行しているログインユーザーで
    SQLServerに接続するものと思っていたのですが、フォームアプリケーション側で

    "HTTP ステータス 401: Unauthorized で要求が失敗しました。"

    というエラーが発生します。

    社内ではプロキシサーバー経由で接続していますが、それが原因かと思い
    プロキシの例外にアドレスを追加設定しましたが、状況は変わりません。


    IIS側の設定の問題なのかweb.Config関連の問題なのか、解決に行き詰って
    おります。
    確認項目などご教示ください。

    よろしくお願いします。

    2011年2月16日 10:01

回答

  • WinForms のクライアント側で、Web メソッドを呼び出す際に認証情報を送信されていないとかないですか?

    匿名から Windows 認証にかわったら、Web サービスのリクエストに認証が必要になるので、WinForms 側の proxy の Credentials プロパティに適切な認証情報を渡す必要があります。 クライアントにログイン中のドメインユーザで認証する場合には、CredentialCache.DefaultCredentials を渡せばよかったと思います。

    • 回答としてマーク 山本春海 2011年2月24日 9:00
    2011年2月16日 23:54

すべての返信

  • WinForms のクライアント側で、Web メソッドを呼び出す際に認証情報を送信されていないとかないですか?

    匿名から Windows 認証にかわったら、Web サービスのリクエストに認証が必要になるので、WinForms 側の proxy の Credentials プロパティに適切な認証情報を渡す必要があります。 クライアントにログイン中のドメインユーザで認証する場合には、CredentialCache.DefaultCredentials を渡せばよかったと思います。

    • 回答としてマーク 山本春海 2011年2月24日 9:00
    2011年2月16日 23:54
  • K.Takaoka様

    >Credentials プロパティに適切な認証情報を渡す必要があります。 クライアントにログイン中のドメインユーザで認証する場合には、>CredentialCache.DefaultCredentials を渡せばよかったと思います。

    教えていただいたとおり、期待した結果が得られました。

    内容を理解していなかったため、Credentials プロパティを調べたりしていました。

    参考:http://www.atmarkit.co.jp/fdotnet/hybooks/vbnet01/vbnet01_03.html

     

    次に進むことが出来ます。

    ありがとうございました。

    2011年2月17日 1:21