0

我是新來的MVC 3,並通過了很多很酷的教程。熱愛設計模式並享受生產力提升。與ASP.Net V3的連接字符串

我現在遇到的一個問題是,我正在使用內置數據庫來處理大多數教程中許多基本MVC應用程序背後的登錄信息。我現在需要改變以訪問現場製作系統的登錄細節,但無法找到它在哪裏做。

我最初的教導就像改變連接字符串一樣簡單,但生產數據庫完全不同於編制的例子。

模型/控制器從哪裏獲取數據並不明顯。例如,模型/控制器在哪裏檢索用戶名或比較密碼。如果我知道這一點,那麼我可以改變我的解決方案,指向正確的數據庫/表/字段。

此外,我的真實數據庫在EF中建模,並且在同一個解決方案中的單獨項目中。所以我有MyProject.Data和MyProject.Web,並最終將有MyProject.Test等。

在這裏的任何幫助將大大appreicated。提前致謝。

編輯1:真正的數據庫也有一個用戶名和密碼字段的登錄表,就像MVC簡單登錄數據庫。然而,數據庫顯然不是系統的一部分,就像示例項目中那樣。而是坐在等待訪問的服務器上。

我的問題是,我不知道要去哪裏做出所需的更改。我想這將是連接字符串,但這是行不通的。即使我得到的錯誤只是指向連接字符串,而不是給我一行代碼來查找。

+0

聽起來像你需要一個(自定義)成員資格提供商。但是確定的細節太少了。 –

回答

1

默認情況下,框架將拉取與DbContext派生類相同的連接字符串。因此,請查找與此類相同的連接字符串。說了這個連接字符串與默認窗體實現完全無關,因爲它從web.config成員資格部分中標識的連接字符串中提取。這應該看起來像這樣:


<membership> 
    <providers> 
    <clear/> 
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" 
     enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" 
     maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" 
     applicationName="/" /> 
    </providers> 
</membership> 

在那裏您會看到connectionStringName標識。你當然可以簡單地改變這一點,但如果你已經擁有一個現有的數據庫,最有可能不會被正確地結構化。

Henk的評論很可能是正確的,因爲您希望創建自己的成員資格提供者(只需創建一個類並從MembershipProvider繼承並實現CreateUser,GetUser,ValidateUser和ApplicationName(或者我認爲))。您需要確保註冊該提供者來代替AspNetMembershipProvider。一旦你這樣做,你應該看到你的提供商的斷點,並簡單地實施,因爲你需要它爲您的數據庫/ AD/...

+0

感謝您的回答,這確實有用。 –