我将很快开始一个 ASP.NET MVC 4 项目,其中 Entity Framework 作为我的 ORM,Oracle 作为我的数据库引擎。
我知道,为了让 EF 与 Oracle 一起工作,必须在 Oracle 中手动创建表,并将实体逐列映射到表中。
问题是我的应用程序有身份验证和授权需求,我想知道让 .NET 成员资格与我的场景一起工作的最简单方法是什么。
我找到了这篇文章,但它使用了我认为昂贵的第三方软件。
我将很快开始一个 ASP.NET MVC 4 项目,其中 Entity Framework 作为我的 ORM,Oracle 作为我的数据库引擎。
我知道,为了让 EF 与 Oracle 一起工作,必须在 Oracle 中手动创建表,并将实体逐列映射到表中。
问题是我的应用程序有身份验证和授权需求,我想知道让 .NET 成员资格与我的场景一起工作的最简单方法是什么。
我找到了这篇文章,但它使用了我认为昂贵的第三方软件。
我正在使用Oracle Developer Tools for .NET (ODT),它提供了很大的帮助。最好的部分:它是免费的!ODT 包括 ODP.NET,将帮助您执行以下操作:
需要考虑的一些事项... 我的会员模式与用于我的应用程序的模式是分开的。通过这种方式,我可以将一个成员模式用于可能依赖于不同数据库(模式/用户)的多个应用程序。
配置 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>
希望这可以帮助。