3

IIS 7.5 の Web サイトに、ユーザーがネットワーク ドライブをマップできる仮想ディレクトリをセットアップしました。私がやりたいのは、ユーザーがドライブをマップするときに「別の資格情報で接続する」を選択するカスタム認証のようなものを設定することです。その後、それらの資格情報を使用して、コンテンツを表示する前に自分の Web サイトにログインできます。仮想ディレクトリの。これは可能ですか?

ドライブをマッピングするときに使用される資格情報を (プログラムで) 取得する方法が見つからないようです。現在、仮想ディレクトリへの要求ごとHttpModuleHttpHandler実行していますが、資格情報を検出する方法がわかりません。誰かがこのようなことをしたことがありますか?

これが不可能な場合、別の資格情報で接続することを選択する目的が何であるかを誰かが説明できますか? これらの資格情報はどこで使用されますか? IIS の特定の形式の認証で使用されますか? 確かに、異なる資格情報を使用するための何らかのセットアップが必要ですか?

アップデート:

ダイジェスト認証を使用して、Fiddler に表示される Authorization ヘッダーを確認できるようになりましたが、何らかの方法でパスワードを解析できるかどうかはまだわかりません。ダイジェスト認証には根本的な欠陥があることを示唆する記事をオンラインでいくつか見たことがありますが、Authentication in ASP.NET: .NET Security Guidanceによると、ユーザーがカスタム データベースに保存されている場合は基本認証を使用しないでください。

ですから、うまくいけば答えやすくなる、より単純なシナリオを提示しましょう。

ネットワーク ドライブをサイト内の仮想ディレクトリにマッピングするときに使用するカスタム認証を実装しようとしています。IIS 7.5 を使用しています。HttpModuleまたは Global.asax イベントでカスタム ログインを処理するために、ユーザー名とパスワードを解析する必要があります。誰かがこのようなことをしたことがありますか、またはアドバイス/提案はありますか?

動作するように見えるこの例を見つけましたが、これはブラウザ用です。テストサイトに実装しましたが、ドライブをマッピングするときに問題が発生し、401チャレンジが返されます(ログインを要求するはずです)が、Windowsは代わりに次のようなエラーを表示します:

Windows はアクセスできませんHttp://myServer/mySite/myFolder

名前のスペルを確認してください。そうでない場合は、ネットワークに問題がある可能性があります。

エラー コード: 0x80070043 ネットワーク名が見つかりません

ネットワークが見つからないことを表示するのではなく、Windows がログインを要求するように、基本/ダイジェスト認証スタイルのチャレンジ応答をフォーマット/構築できるかどうか疑問に思っています。これが可能かどうか誰にもわかりますか?

更新 2:

NegotiateWindows認証にヘッダーが含まれていることをFiddlerを使用して見ました。そこで、ヘッダーに加えて、チャレンジ応答にそのヘッダーを含めてみましたWWW-Authenticate: Basic。これにより、上記の「ネットワーク名が見つかりません」というエラーの問題が修正されたようですが、残念ながら、(資格情報を提供した後) 後続の要求に Authorization ヘッダーが含まれていないため、ユーザー名とパスワード。

ここではアイデアが不足しています。認証に関するドキュメントはたくさんあるようですが、WebDAV 認証 (またはその使用方法)、またはドライブをマッピングするときのカスタム認証に関するドキュメントはあまりないようです。

誰か洞察やアイデアを持っていますか?

解決:

自分がやりたいことが正確にできるようには見えません。@AdamV の Windows 認証に関する提案を使用してさらにテストを行うつもりです。

4

1 に答える 1

3

Active Directory を IIS と組み合わせて使用​​し、ネットワーク ドライブをマップしようとしていると思います。この仮定が正しければ、私はあなたのためのアイデアを持っています。

http://www.mysite.com/に最初の Web サイトがあり、ログインできます。次に、IIS のサブフォルダーと新しい Web アプリケーションとして、http: //www.mysite.com/networkdrive/ をセットアップします。これは、ポスト パラメーターでhttp://www.mysite.com/を介して使用するネットワーク パスを受け取ります。クッキー。

キッカーは、この新しいアプリケーションは単純に Windows 認証を使用し、ルート サイトは任意の認証を使用できることです。このようにして、ユーザーはサイトにログインし、ネットワーク ドライブ パスを選択または入力します。これはサブ アプリに送信され、Windows 資格情報を自動的に要求します。最初に行うアクションは、Windows Auth トークンを使用してドライブをマップすることです。 . これを実現するには、ID の偽装をオフにし、資格情報を介してコードを実行する権限を設定する必要があります。

ドライブを切り替えたい場合は、/networkdrive/ アプリからログアウトし、ドライブ選択ページ/フォームに戻します。

Windows 認証に関する情報: http://msdn.microsoft.com/en-us/library/907hb5w9(v=vs.100).aspx

更新: WebDAV のコメントに応えて、WebDAV の構成に関して私が見つけたいくつかのドキュメントを以下に示しますが、それでも Windows 認証を使用しています。http://www.iis.net/learn/install/installing-publishing-technologies/installing-and-configuring-webdav-on-iis

于 2012-11-07T19:44:09.703 に答える