2

Web アプリケーションを開発していて、フォームと Windows 認証を組み合わせる必要があります。

私が選択したアプローチは次のとおりです。すべての Web サイトの認証方法はフォーム認証でなければなりません。~/home/Loginフォーム認証を介してログインするためのフォーム ページ ( ) があります。魔法 (および問題) は、1 つのページ (たとえば~/Home/WinLogin) だけで、認証方法を Windows 認証に設定する必要があることです。このページはHttpContext.User.Identity.Name、Windows ユーザー名を取得するために読み取るために使用されます。

私が知らないのは、1 つの特定のルートに対して iis6 で win auth を設定する方法です。

ルートは次のようになり~/Home.ashx/WinLoginます。わかりましたが、その後はどうですか?仮想ディレクトリとサブディレクトリ WinLogin にディレクトリ Home.ashx を作成しようとしました。しかし、その後~/Home.ashx/Login(ログインフォームで)機能しなくなりました。

iis6 では ashx ハンドラーを使用する必要があるため、作業を行う通常の Web ページを作成する以外に方法はないようです~/WinLogin.aspx。ただし、それを避けてMVCのみを使用したかったのです。

iis7 のセットアップ方法に関する情報: IIS 7.0 Server-Side ブログ 完璧ではありません (Mike Volodarsky がカスタム フォーム認証モジュールを作成する必要がありました) が、動作します。

4

1 に答える 1

2

IIS7 のように IIS6 で Windows 認証を選択的に設定することはできません。ただし、匿名認証と Windows 認証をサポートするように home.ashx を設定できます。/Login ケースの HttpContext.User プロパティを置き換え、/WinLogin ケースで Windows の原則を使用します。ただし、フォーム認証を使用したいが、Windows プリンシパルの ID が提示され、それを無視する場合をコード パスで許可するように注意する必要があります。

于 2009-01-08T16:58:16.530 に答える