使用Oracle数据库配置ASP.NET MVC 4应用程序

Chr*_*ark 14 c# oracle11gr2 asp.net-mvc-4

我目前正在使用Oracle数据库处理ASP.NET MVC 4项目.我已成功在我的Web.config文件中添加连接字符串,如下所示:

<add name="OracleDBConnString" connectionString="Provider=MSDAORA;Data Source=ISDQA;User ID=isd;Password=isdqa;" providerName="System.Data.OleDB" />
Run Code Online (Sandbox Code Playgroud)

但是当我创建一个新项目时,它已经有了一个内置的身份验证类.如何一劳永逸地修改这些类?我想更改默认值ConnString.

这是我的模特:

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; }
}
Run Code Online (Sandbox Code Playgroud)

这是我的用户控制器:

[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);
}
Run Code Online (Sandbox Code Playgroud)

UPDATE

当我更改base("DefaultConnection")base("OracleDBConnString"),我收到此错误:

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.
Run Code Online (Sandbox Code Playgroud)

请注意,我已经添加using System.Data.OleDb;了我的使用.

Pio*_*app 8

您可以在web.config中设置您使用的成员资格提供程序,而不是创建特殊类.

对于Oracle,存在一个OracleMembershipProvider类,您可以在此处找到它.对于MySQL,您可以使用MySQLMembershipProvider.有一篇很好的文章如何设置它:如何设置和配置MySql成员资格提供程序

此外,您可以使用实体框架代码优先成员资格提供程序 并使用适当的提供程序(请参阅本文:实体框架代码优先支持Oracle,MySQL,PostgreSQL和SQLite).我没有尝试这个解决方案,但看起来很有希望.

如果上述任何内容都无法帮助您编写自己的Memebership提供商,但我相信您可以找到已存在的内容.

总结:不是更改连接类型,而是更改特定于您的需求的成员资格提供程序.您的代码不应该注意到更改,因为每个成员资格提供程序都会继承基MemebershipProivder