visual studio net mvc framework dataaccess conexion conectar con cadena 11g c# asp.net-mvc-4 oracle11gr2

c# - studio - Configure la aplicación ASP.NET MVC 4 con la base de datos Oracle



entity framework oracle visual studio 2017 (2)

Actualmente estoy trabajando en el proyecto ASP.NET MVC 4 con la base de datos Oracle. He agregado con éxito la cadena de conexión en mi archivo Web.config como aquí:

<add name="OracleDBConnString" connectionString="Provider=MSDAORA;Data Source=ISDQA;User ID=isd;Password=isdqa;" providerName="System.Data.OleDB" />

Pero cuando creo un nuevo proyecto, ya tiene una clase de autenticación incorporada. ¿Cómo puedo modificar estas clases de una vez por todas? Quiero cambiar el ConnString predeterminado .

Aquí está mi modelo:

public class UsersContext : DbContext { public UsersContext() : base("OracleDBConnString") { } public DbSet<UserProfile> UserProfiles { get; set; } } public class LoginModel { [Required] [Display(Name = "User name")] public string UserName { get; set; } [Required] [DataType(DataType.Password)] [Display(Name = "Password")] public string Password { get; set; } [Display(Name = "Remember me?")] public bool RememberMe { get; set; } }

Aquí está mi controlador de usuario:

[HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Login(LoginModel model, string returnUrl) { //I WANT TO MODIFY THIS PART if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)) { return RedirectToLocal(returnUrl); } // If we got this far, something failed, redisplay form ModelState.AddModelError("", "The user name or password provided is incorrect."); return View(model); }

ACTUALIZAR

Cuando cambio la base("DefaultConnection") a la base("OracleDBConnString") , recibí este error:

Server Error in ''/'' Application. A null was returned after calling the ''get_ProviderFactory'' method on a store provider instance of type ''System.Data.OleDb.OleDbConnection''. The store provider might not be functioning correctly.

Tenga en cuenta que ya agregué using System.Data.OleDb; en mis usos.


En lugar de crear una clase especial, puede configurar en web.config qué proveedor de membresía utiliza.

Para Oracle existe una clase OracleMembershipProvider , que puede encontrar aquí . Para MySQL puede usar MySQLMembershipProvider . Hay un buen artículo sobre cómo puede configurarlo: Cómo configurar y configurar el proveedor de membresía MySql

Además, puede utilizar el primer proveedor de membresía de Entity Framework Code y usar el proveedor adecuado (consulte este artículo: Entity Framework Code-First support para Oracle, MySQL, PostgreSQL y SQLite ). No probé esta solución, pero parece prometedor.

Si nada de lo anterior lo ayuda, puede escribir a su propio proveedor de Memebership, pero estoy seguro de que puede encontrar algo que ya existe.

En resumen: en lugar de cambiar el tipo de conexión, cambie el proveedor de membresía que será específico para sus necesidades. Su código no debe notar cambio, porque cada proveedor de membresía hereda la clase base MemebershipProivder


Me temo que Asp.Net SimpleMembership y Asp.Net son diferentes bestias. Las plantillas de Asp.Net MVC4 usan SimpleMembership (WebSecurity.Login).

Vea mi respuesta sobre el uso del proveedor de membresía de MySql en Asp.Net MVC4 aquí . Simplemente cambiar la cadena de conexión u otras cosas no te ayudará. Necesita encontrar una Assoperación simple de Oracle Asp.Net o escribir la suya propia.