1

Entity Framework を ORM として、Oracle をデータベース エンジンとして、ASP.NET MVC 4 プロジェクトをまもなく開始する予定です。

EF を Oracle で動作させるには、Oracle でテーブルを手動で作成し、エンティティを列ごとにテーブルにマップする必要があることを知っています。

問題は、私のアプリケーションに認証と承認のニーズがあることです。.NET メンバーシップを私のシナリオで動作させる最も簡単な方法は何かと考えていました。

この記事を見つけましたが、高価なサードパーティのソフトウェアを使用しています。

4

1 に答える 1

2

私はOracle Developer Tools for .NET (ODT) を使用していますが、非常に役に立ちました。最良の部分: それは無料です! ODT には ODP.NET が含まれており、次のことを行うのに役立ちます。

  • ASP.NET メンバーシップ テーブルを自動的にセットアップします。最初にスキーマを作成してから、提供されたスクリプトを実行する必要があります。
  • EF エンティティを自動的に作成してマップします (最初にデータベースを使用)。テーブルをテーブルに手動でマップする必要はありません。

考慮すべき点... メンバーシップ スキーマは、アプリケーションで使用されるスキーマとは別のものです。このようにして、異なるデータベース (スキーマ/ユーザー) に依存する複数のアプリケーションに対して 1 つのメンバーシップ スキーマを使用できます。

web.config を構成するときは、アプリケーション名を「/」から意味のある名前に変更してください。いくつかの構成要素がアプリケーション名を参照しているため、必ずすべてを変更してください。メンバーシップ プロバイダーは、membersip データベース スキーマにアプリケーション レコードを自動的に作成します。

(スクリプトを使用して) メンバーシップ スキーマを作成したら、web.config ファイルのメンバーシップ、プロファイル、および roleManager 要素を次のように変更する必要があります。

<membership defaultProvider="OracleMembershipProvider">
  <providers>
    <clear />
    <add name="OracleMembershipProvider" type="Oracle.Web.Security.OracleMembershipProvider, Oracle.Web, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConnectionString" applicationName="YOUR_APP_NAME" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="5" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />
  </providers>
</membership>
<profile>
  <providers>
    <clear />
    <add name="OracleProfileProvider" type="Oracle.Web.Profile.OracleProfileProvider, Oracle.Web, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConnectionString" applicationName="YOUR_APP_NAME" />
  </providers>
</profile>
<roleManager enabled="true" defaultProvider="OracleRoleProvider">
  <providers>
    <clear />
    <add connectionStringName="OraAspNetConnectionString" applicationName="YOUR_APP_NAME" name="OracleRoleProvider" type="Oracle.Web.Security.OracleRoleProvider, Oracle.Web, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
  </providers>
</roleManager>

このリンクも役立つ場合があります

お役に立てれば。

于 2013-09-25T15:47:52.873 に答える