2011-03-15 161 views
1

我已經在mvc3中創建了應用程序,並且我爲我的用戶使用了默認帳戶控制器。 我遵循http://www.asp.net/mvc/tutorials/authenticating-users-with-forms-authentication-cs的說明將所有表格(來自aspnetdb)放在一個數據庫中。ASP.NET MVC3數據庫部署

我的麻煩是如何正確設置webconfig和連接字符串? 我將conn字符串設置爲我的數據庫,但是如果我嘗試註冊Visual Studio創建aspnetdb並將我的用戶信息放在那裏。 我想找到解決方案來停止vs創建aspnetdb。 我的託管服務提供商是http://www.inside.hr它是來自克羅地亞的託管公司

回答

1

如果您的共享主機環境只允許您使用一個數據庫,則可以將ASP.NET成員資格數據庫表添加到現有數據庫。喬斯塔格納有關於如何做到這一點的演練here

你可以更新你的問題,告訴我們你在哪裏舉辦?這將有所幫助。

+0

我的託管服務提供商是http://www.inside.hr它是來自克羅地亞的託管公司 – 2011-03-15 22:56:06

+0

您是否允許擁有多個數據庫?你不需要僅僅使用一個存儲庫來使用兩個數據庫,但是出於其他原因,這是一個很好的模式。 – 2011-03-15 23:14:04

+0

是的,我可以有更多的一個數據庫 – 2011-03-16 07:49:10

0

我不知道如果我跟着你正確的,但你嘗試這樣的事:

<connectionStrings> 
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 
    providerName="System.Data.SqlClient" /> 
    <add name="MyDevArmyDB" connectionString="Data Source=DATASOURCE;Initial Catalog=devarmydb;Persist Security Info=True;User ID=USERID;Password=PASSWORDSTRING" 
    providerName="System.Data.SqlClient" /> 
</connectionStrings> 

DATASOURCE-替換數據庫 的地址USERID-與實際用戶ID PASSWORDSTRING更換 - 替換實際密碼

訪問DB像這樣做:

public class SqlUserRepository : IUserRepository 
{ 
    private DataContext dataContext; 
    private Table<User> usersTable; 

    public IQueryable<User> Users { get { return usersTable; } } 

    public SqlUsersRepository(string databaseName) 
    { 
     HttpRequestWrapper request = new HttpRequestWrapper(System.Web.HttpContext.Current.Request); 
     Configuration config = WebConfigurationManager.OpenWebConfiguration(request.ApplicationPath); 
     dataContext = new DataContext(config.GetConnetionString(databaseName)); 
    } 
} 

注意,戈tConnectionString是支持的連接字符串的加密/解密(如果你決定要保護連接字符串)的擴展功能:

public static class ConfigExtension 
{ 
    public static string GetConnetionString(this Configuration config, string databaseName, string provider = "RSAProtectedConfigurationProvider") 
    { 
     string sectionName = "connectionStrings"; 
     ConfigurationSection section = config.GetSection(sectionName); 
     if (section != null && !section.SectionInformation.IsProtected) 
     { 
      section.SectionInformation.ProtectSection(provider); 
      config.Save(); 
     } 

     return WebConfigurationManager.ConnectionStrings[databaseName].ConnectionString; 
    } 
} 
+0

像我試過的連接字符串,但是這個類SqlUserRepository我應該添加在我的模型或什麼? – 2011-03-15 22:59:13

+0

@Goran,它可能是你的用戶模型的一部分(並且我定義了我定義用戶模型的同一個地方),但就我所見,它應該只被你的Controller使用。 – Kiril 2011-03-15 23:02:38

+0

你是否真的在服務器上嘗試過?作爲默認我的accountmodel.cs在模型文件夾中,類ConfigExtension是用於? – 2011-03-15 23:08:24