2013-07-29 15 views
14

現在、Oracleデータベースを使用しているASP.NET MVC 4プロジェクトで作業しています。ASP.NET MVC 4アプリケーションをOracleデータベースで設定する

​​3210

をしかし、私は新しいプロジェクトを作成するとき、それはすでにビルトイン認証クラスを持っている:私は正常にここにように私のWeb.configファイルに接続文字列を追加しています。どのようにしてこれらのクラスを変更することができますか? デフォルトの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("OracleDBConnString")base("DefaultConnection")を変更すると、私はこのエラーを得た:

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;を追加しました。

答えて

8

特別なクラスを作成する代わりに、使用しているメンバーシッププロバイダのweb.configを設定することができます。

OracleMembershipProviderクラスには、hereがあります。 MySQLの場合、MySQLMembershipProviderを使用できます。 How to Setup and Configure MySql Membership Provider

また、あなたがEntity Framework Code First Membership Providerを使用することができます(この記事で見て:Entity Framework Code-First support for Oracle, MySQL, PostgreSQL and SQLite)適切なプロバイダを使用する:あなたはセットアップそれができる方法素晴らしい記事があります。私はこの解決策を試しませんでしたが、有望です。

上記のいずれも役立たない場合は、独自のメンバシッププロバイダを作成できますが、すでに存在するものを見つけることができると確信しています。

要約:接続タイプを変更する代わりに、必要に応じてメンバーシッププロバイダを変更します。すべてのメンバーシッププロバイダが基底を継承するので、コードに変更が気付かないでください。

+0

私はそれを取得しません。接続文字列を変更する必要がありますか? –

+0

ところで、私はCodeFirstメンバーシッププロバイダをインストールしました。 –

+0

@garath Oracle MemberShipプロバイダを設定する方法を教えてください。ここで私の答えを見てください:http://stackoverflow.com/questions/23094959/using-oracle-membership-provider-in-asp-net-mvc – Chlebta

1

Asp.Net SimpleMembershipとAsp.Netメンバーシップは異なる獣です。 Asp.Net MVC4テンプレートはSimpleMembership(WebSecurity.Login)を使用します。

Asp.Net MVC4 hereのMySqlメンバーシッププロバイダの使用についての私の回答を参照してください。単に接続文字列やその他のものを変更するだけでは役に立ちません。 Oracle Asp.Net SimpleMembershipを検索するか、自分で作成する必要があります。

関連する問題