IIS 7.5 の Web サイトに、ユーザーがネットワーク ドライブをマップできる仮想ディレクトリをセットアップしました。私がやりたいのは、ユーザーがドライブをマップするときに「別の資格情報で接続する」を選択するカスタム認証のようなものを設定することです。その後、それらの資格情報を使用して、コンテンツを表示する前に自分の Web サイトにログインできます。仮想ディレクトリの。これは可能ですか?
ドライブをマッピングするときに使用される資格情報を (プログラムで) 取得する方法が見つからないようです。現在、仮想ディレクトリへの要求ごとHttpModule
にHttpHandler
実行していますが、資格情報を検出する方法がわかりません。誰かがこのようなことをしたことがありますか?
これが不可能な場合、別の資格情報で接続することを選択する目的が何であるかを誰かが説明できますか? これらの資格情報はどこで使用されますか? 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:
Negotiate
Windows認証にヘッダーが含まれていることをFiddlerを使用して見ました。そこで、ヘッダーに加えて、チャレンジ応答にそのヘッダーを含めてみましたWWW-Authenticate: Basic
。これにより、上記の「ネットワーク名が見つかりません」というエラーの問題が修正されたようですが、残念ながら、(資格情報を提供した後) 後続の要求に Authorization ヘッダーが含まれていないため、ユーザー名とパスワード。
ここではアイデアが不足しています。認証に関するドキュメントはたくさんあるようですが、WebDAV 認証 (またはその使用方法)、またはドライブをマッピングするときのカスタム認証に関するドキュメントはあまりないようです。
誰か洞察やアイデアを持っていますか?
解決:
自分がやりたいことが正確にできるようには見えません。@AdamV の Windows 認証に関する提案を使用してさらにテストを行うつもりです。