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

本文关键字:MVC 应用程序 NET ASP Oracle 数据库 配置 使用 | 更新日期: 2023-09-27 18:25:21

我目前正在使用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" />

但当我创建一个新项目时,它已经有了一个内置的身份验证类。如何一劳永逸地修改这些类我想更改默认的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; }
}

这是我的用户控制器:

[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);
}

更新

当我将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.

请注意,我已经在using上添加了using System.Data.OleDb;

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

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

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

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

如果以上没有任何帮助,你可以编写自己的Memebership提供商,但我相信你可以找到一些已经存在的东西。

综上所述:与其更改连接类型,不如更改会员资格提供商,它将专门针对您的需求。您的代码不应该注意到更改,因为每个成员资格提供者都继承了基本的MemebershipProivder

Asp.Net SimpleMembership和Asp.Net Membership恐怕是两码事。Asp.Net MVC4模板使用SimpleMembership(WebSecurity.Login)。

请在此处查看我对Asp.Net MVC4中MySql成员资格提供程序使用情况的回答。简单地更改连接字符串或其他事情对您没有帮助。您需要找到一个Oracle Asp.Net SimpleMembership或编写自己的。