0

Role エンティティに基づいて構築されたカスタム ロール プロバイダーと、フォーム認証 User エンティティと Roles の間に RoleUser と呼ばれる多対多の関係があります。このロール プロバイダーを Windows 認証を使用するように切り替えたいと思います。フォーム ユーザーをピギー バックし、Users エンティティに AD ユーザーの「シャドウ」を作成すると便利なようです。

これは実現可能ですか、それとも眉をひそめますか?この種のセットアップに関する優れた論文などはありますか?

私は SQL 2005 に対して EF Code First を使用しており、カスタム メンバーシップ プロバイダーは使用していません。ユーザー コントローラーとリポジトリが必要なすべてを適切に処理するためです。単なるロール プロバイダーです。

4

2 に答える 2

1

この場合のメンバーシッププロバイダーは、エンティティフレームワークDbContextの「ユーザー」モデルと「ロール」モデルを使用するカスタムメンバーシッププロバイダーにすることができます。ユーザーモデルには、ユーザーがドメインユーザーであるかどうかを示すブールフィールドが含まれている場合があります。ドメインユーザーを処理する場合、ActiveDirectoryドメインからユーザーをインポートするオプションがあります。管理者は、必要なADユーザーをデータベースにインポートするだけです。彼らがデータベースに入ると、彼らはログインすることができます。アカウントコントローラーのログインアクションでは、ユーザーがドメインユーザーであるかどうかを確認し、ドメインコントローラーでユーザーを認証してから、ログインしてトークンを発行できるようにします。これは、フォームを使用したAD認証に関する優れた記事です。それはVBにありますが、あなたは物事を手に入れることができます。また、記事に従って、両方の認証をサポートするプロバイダーを作成することもできます。

http://www.cmjackson.net/2009/10/23/asp-net-mvc-using-forms-authentication-with-ldap/

于 2012-12-15T08:31:43.570 に答える
0

5 種類の認証があることに注意してください。

1-匿名認証

2-Asp.netのなりすまし

3-基本認証 HTTP 401 チャレンジ

4- フォーム認証 HTTP 302 ログイン/リダイレクト

5- Windows 認証 HTTP 401 チャレンジ

MVC 認証の哲学は、MVC がユーザーの認証にViewStateを使用しないという事実に言及しています。ビュー ステートやサーバーベースのフォームは使用しません。これにより、MVC フレームワークは、アプリケーションの動作を完全に制御したい開発者にとって理想的なものになります。

MVC 標準によると、セキュリティ上の問題などから、Windows 認証はイントラネット アプリケーションに、フォーム認証はインターネット アプリケーションに適しています。

Windows 認証とフォーム認証の両方を一緒に使用することは一般的ではありません。ただし、このcodeproject articleのようにそれらのハイブリッドを使用できます。フォーム認証のようなアクションを実行したい場合や、バックエンドでWindowsアカウント情報をプログラマビリティを介してDBなどに保存したい場合を除きます。認証の種類に問題がないことを確認してください。

もう 1 つの重要な点があります。それは、次のように web.config で構成できる認証と承認の違いです。

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication> 
<authorization>
    <deny users="?"/>
</authorization>

また

<authentication mode="Windows"/>
<authorization>
   <deny users="?"/>
</authorization>

このMSDN の記事も参考になるかもしれません。

于 2012-12-15T08:01:14.643 に答える