【问题标题】:MVC5 ASP.NET Identity with Oracle DB带有 Oracle DB 的 MVC5 ASP.NET 身份
【发布时间】:2015-06-10 16:21:57
【问题描述】:

请问,有人知道任何将 MVC5 ASP.NET 身份与 Oracle DB 11g 一起使用的示例吗?

我用下一个配置更改了所有 web.config:

<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />

<add name="OracleDbContext" providerName="Oracle.ManagedDataAccess.Client" connectionString="User Id=USERADM;Password=PASSWORD;Data Source=oracle" />

<assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />

<defaultConnectionFactory type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess" />
<providers>
  <provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</providers>

<DbProviderFactories>
  <remove invariant="Oracle.ManagedDataAccess.Client" />
  <add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>

<dataSource alias="oracle" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=HOST)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=BD))) " />

并像这样更改 IdentityModel 文件:

using Microsoft.AspNet.Identity.EntityFramework;
using System.Data.Entity;

namespace OracleTest1.Models
{
// You can add profile data for the user by adding more properties to your ApplicationUser class, please visit http://go.microsoft.com/fwlink/?LinkID=317594 to learn more.
public class ApplicationUser : IdentityUser
{
}

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("OracleDbContext")
    {

    }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.HasDefaultSchema("USERADM");
    }
}
}

当尝试测试登录时,我收到下一个错误:

Error de servidor en la aplicación '/'.

Se han detectado uno o varios errores de validación durante la generación del modelo:

OracleTest1.Models.IdentityUserLogin: : EntityType 'IdentityUserLogin' no tiene ninguna clave definida. Defina la clave para este EntityType.
OracleTest1.Models.IdentityUserRole: : EntityType 'IdentityUserRole' no tiene ninguna clave definida. Defina la clave para este EntityType.
IdentityUserLogins: EntityType: EntitySet 'IdentityUserLogins' se basa en el tipo 'IdentityUserLogin' que no tiene claves definidas.
IdentityUserRoles: EntityType: EntitySet 'IdentityUserRoles' se basa en el tipo 'IdentityUserRole' que no tiene claves definidas.

Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código. 

Detalles de la excepción: System.Data.Entity.ModelConfiguration.ModelValidationException: Se han detectado uno o varios errores de validación durante la generación del modelo:

OracleTest1.Models.IdentityUserLogin: : EntityType 'IdentityUserLogin' no tiene ninguna clave definida. Defina la clave para este EntityType.
OracleTest1.Models.IdentityUserRole: : EntityType 'IdentityUserRole' no tiene ninguna clave definida. Defina la clave para este EntityType.
IdentityUserLogins: EntityType: EntitySet 'IdentityUserLogins' se basa en el tipo 'IdentityUserLogin' que no tiene claves definidas.
IdentityUserRoles: EntityType: EntitySet 'IdentityUserRoles' se basa en el tipo 'IdentityUserRole' que no tiene claves definidas.

非常感谢

【问题讨论】:

    标签: c# asp.net asp.net-mvc oracle asp.net-mvc-5


    【解决方案1】:

    Entity Framework 6 的当前 Oracle 提供程序存在错误。解决方法是启用迁移并生成迁移脚本。手动应用脚本并创建表后,您将能够在 Oracle 数据库上使用 ASP.NET Identity。

    获取这样的脚本:

    Update-Database -Script 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-09
      相关资源
      最近更新 更多