3

私は現在、外部の顧客がアクセスするイントラネットサイトを持っています。したがって、フォーム認証を使用してこれを設定しました。ただし、(私の上司の)権力者は、すべてのドメインユーザーがサイトにアクセスするためにユーザー名とパスワードを入力する必要がないことを望んでいます。

私は少し読んだことがありますが、すべてが、WindowAuthenthicationを使用するように変更してそこからリダイレクトするWinLogin.aspxページを設定することを指しているようです。

mvcアプリケーションにaspxフォームを配置するというアイデアが気に入らないため、これに問題があります。

2番目のアプリケーションなしで厳密にMVCコントローラー/アクションセットアップを使用して混合認証を実現する方法を誰かに教えてもらえますか?

注:IIS7ボックスでMVC3を実行します。

4

1 に答える 1

1

フォーム認証は、ファイルのURLや物理構造とは関係ありません。重要なのは、URLが最終的にサーバー上の物理(または仮想)リソースにマップされ、処理されて、ユーザーに返される必要があるということです。

したがって、各着信呼び出し(各HTTP要求、CSSおよびJavaScriptファイルの要求も含む)の中間のどこかで、現在のユーザーがそれにアクセスするための十分な権限を持っているかどうかを確認する必要があります。いいえの場合は、彼をログインページにリダイレクトすることができます。

必要に応じて、はコントローラーの名前、はアクションメソッドの名前のよう/user/windowsloginなURLを設定できます。次に、アクションにカスタム認証属性(のようなもの)を作成し、その属性(本質的にMVCフィルター)で、現在の要求がドメイン内からのものであるかどうかを確認し、そうである場合はActiveに話しかけることができます認証またはそのようなもののためのディレクトリ、および認証が成功した場合は、クラスとストーリーの残りの部分を使用して認証Cookieを作成します。userwindowslogin[WindowsAuthentication]windowsloginFormsAuthentication

しかし、これは簡単な作業ではないと思います。他の人はより良い解決策を紹介するかもしれません。

于 2012-05-30T06:57:27.370 に答える