ASP.NET MVC4 和实体框架中的 .NET 成员资格,Oracle 作为数据库

本文关键字:NET Oracle 数据库 MVC4 实体 框架 ASP 成员 | 更新日期: 2023-09-27 18:32:53

我将很快启动一个 ASP.NET 的MVC 4项目,将实体框架作为我的ORM,Oracle作为我的数据库引擎。

我知道为了让 EF 与 Oracle 一起使用,必须在 Oracle 中手动创建表,并将实体逐列映射到表。

问题是我的应用程序具有身份验证和授权需求,我想知道让 .NET 成员资格与我的方案配合使用的最简单方法是什么。

我找到了这篇文章,但它使用了我觉得很贵的第三方软件。

ASP.NET MVC4 和实体框架中的 .NET 成员资格,Oracle 作为数据库

我正在使用Oracle Developer Tools for .NET(ODT(,这是一个很大的帮助。最好的部分:它是免费的!ODT 包括 ODP.NET,将帮助您执行以下操作:

  • 自动设置 ASP.NET 成员资格表。需要先创建架构,然后运行提供的脚本。
  • 自动创建和映射 EF 实体(首先使用数据库(;无需手动将表映射到表。

需要考虑的一些事项...我的成员身份架构独立于用于我的应用程序的架构。这样,我可以对可能依赖于不同数据库(架构/用户(的多个应用程序使用一个成员身份架构。

配置 web.config 时,请务必将应用程序名称从"/"更改为有意义的名称。多个配置元素引用应用程序名称,因此请务必更改所有元素。成员资格提供程序将在成员 ip 数据库架构中自动创建应用程序记录。

创建成员资格架构(使用脚本(后,需要将 web.config 文件的成员资格、配置文件和角色管理器元素更改为如下所示的内容:

<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>

此链接也可能有所帮助

希望这有帮助。