【问题标题】:.NET Membership in ASP.NET MVC4 and Entity Framework with Oracle as DbASP.NET MVC4 和实体框架中的 .NET 成员资格,Oracle 作为 Db
【发布时间】:2013-09-25 09:08:12
【问题描述】:

我将很快开始一个 ASP.NET MVC 4 项目,其中 Entity Framework 作为我的 ORM,Oracle 作为我的数据库引擎。

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

问题是我的应用程序需要身份验证和授权,我想知道让 .NET 成员资格与我的场景一起工作的最简单方法是什么。

我找到了this article,但它使用了我认为昂贵的第三方软件。

【问题讨论】:

  • 您需要更多帮助吗?
  • 暂时不用,谢谢 Tony :)

标签: c# asp.net-mvc oracle asp.net-mvc-4 asp.net-membership


【解决方案1】:

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

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

需要考虑的一些事情... 我的会员模式与用于我的应用程序的模式是分开的。这样我就可以为可能依赖于不同数据库(模式/用户)的多个应用程序使用一个成员模式。

配置 web.config 时,请务必将应用程序名称从“/”更改为有意义的名称。几个配置元素引用了应用程序名称,因此请务必更改所有内容。成员资格提供者将自动在 membersip 数据库模式中创建应用程序记录。

在(使用脚本)创建成员身份架构后,您需要将 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>

This link may also help

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多