簡體   English   中英

使用Oracle數據庫配置ASP.NET MVC 4應用程序

[英]Configure ASP.NET MVC 4 Application with Oracle Database

我目前正在使用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);
}

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.

請注意,我已經using System.Data.OleDb;添加了using System.Data.OleDb; 在我的使用上。

您可以在web.config中設置您使用的成員資格提供程序,而不是創建特殊類。

對於Oracle,存在OracleMembershipProvider類,您可以在此處找到該類。 對於MySQL,您可以使用MySQLMembershipProvider 有一篇很好的文章如何設置它: 如何設置和配置MySql成員資格提供程序

此外,您可以使用實體框架代碼優先成員資格提供程序並使用適當的提供程序(請參閱本文: 實體框架代碼優先支持Oracle,MySQL,PostgreSQL和SQLite )。 我沒有嘗試這個解決方案,但看起來很有希望。

如果上述任何內容都無法幫助您編寫自己的Memebership提供商,但我相信您可以找到已存在的內容。

總結:不是更改連接類型,而是更改特定於您的需求的成員資格提供程序。 您的代碼不應注意更改,因為每個成員資格提供程序都會繼承基本的MemebershipProivder

Asp.Net SimpleMembership和Asp.Net會員資格是不同的野獸,我擔心。 Asp.Net MVC4模板使用SimpleMembership(WebSecurity.Login)。

這里查看我在Asp.Net MVC4中關於MySql Membership provider用法的回答。 只需更改連接字符串或其他內容對您無濟於事。 您需要找到Oracle Asp.Net SimpleMembership或編寫自己的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM