2009-10-01 27 views
4

我正在使用ADO.NET實體數據模型進行此項目的工作。通常我會在web.config中包含整個連接字符串(用戶名和密碼),但我今天早上感覺很活躍,所以我決定從連接字符串中排除密碼。不幸的是,在我操縱數據庫之前,我似乎無法弄清楚如何傳遞或設置密碼,到目前爲止我所做的所有搜索都沒有取得任何成果。所有我現在是一對夫婦加一個新的記錄行:使用ADO.NET實體數據模型,我如何傳遞(或設置)連接字符串密碼?

_entities.AddToUploadSet(uploadFile); 
_entities.SaveChanges(); 

我看到有一種_entities.ConnectionConnectionString屬性,但我沒能找到任何類似密碼的性質是有用的。

任何人都可以幫我嗎?謝謝!

編輯

對於澄清,此屏幕截圖顯示了一步,我可以選擇是否將包括在web.config文件中的密碼:

alt text

因此,大家可以看到,按照提示建議,我需要將其設置在我的應用程序代碼中。

回答

1
+0

基本上我在下面做了什麼? – Anders

+1

嗯,你有點寫自己的,但是。 :) –

+1

是的,那就是我的意思嘿嘿。很高興知道有內置的東西可以做我所做的。我會檢查出來,謝謝你的鏈接! – Anders

0

裏面你的web.config會有類似的條目:

<connectionStrings> 
    <add name="HelpEntities" connectionString="metadata=res://*/Models.HelpModel.HelpModel.csdl|res://*/Models.HelpModel.HelpModel.ssdl|res://*/Models.HelpModel.HelpModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=(local);Initial Catalog=XXX;Integrated Security=True;MultipleActiveResultSets=True&quot;" 
     providerName="System.Data.EntityClient" /> 
    </connectionStrings> 

上面的例子使用集成安全性,但它是可以使用的用戶名和密碼,而不是。

1

好吧,我做了一些周圍挖掘和管道錄音的這個解決方案一起:

private static string CreateNewConnectionString(string connectionName, string password) 
{ 
    var config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~").ConnectionStrings.ConnectionStrings[connectionName]; 
    var split = config.ConnectionString.Split(Convert.ToChar(";")); 
    var sb = new System.Text.StringBuilder(); 

    for (var i = 0; i <= (split.Length - 1); i++) 
    { 
     if (split[i].ToLower().Contains("user id")) 
     { 
      split[i] += ";Password=" + password; 
     } 

     if (i < (split.Length - 1)) 
     { 
      sb.AppendFormat("{0};", split[i]); 
     } 
     else 
     { 
      sb.Append(split[i]); 
     } 
    } 
    return sb.ToString(); 
} 

就算它是不是最漂亮的方法,但它能夠完成任務。我將它傳遞給一個連接字符串名稱和一個密碼,並且它返回一個帶有密碼的更新連接字符串。這是我如何實現它:

_entities = new UploadEntity(CreateNewConnectionString("UploadEntity", "[removed]")); 
_entities.AddToUploadSet(uploadFile); 
_entities.SaveChanges(); 
相關問題