![](/img/trans.png)
[英]Suggested methods to secure connection strings with web.config transformations
[英]Connection Strings in Web Config
我需要傳遞用戶名和密碼,以便任何用戶都可以在數據庫上運行存儲過程。 在我的網絡配置中,我的代碼設置為此
<appSettings>
<add key="Connection1" value="server=validserver;database=validdatabase;uID=validuserid;password=validpassword;" />
</appSettings>
在我的 C# 中 - 我首先設置一個等於連接的變量,如下所示:
public const string MainDBConn = "Connection1";
任何時候我想使用這個連接字符串我都這樣稱呼它
RunSQLQuery(MainDBCon, "nameofstoredprocedure");
但是我不斷拋出這個錯誤,對我來說這是一個無效的連接字符串,但我的服務器名稱、數據庫、用戶 ID 和密碼都是有效的......
初始化字符串的格式不符合從索引 0 開始的規范
我要更改什么才能在語法中使用此連接字符串連接到我的服務器實例?
編輯將我的連接字符串更改為
ConfigurationManager.ConnectionStrings["Connection1"].ConnectionString;
現在產生一個錯誤:
與 SQL Server 建立連接時發生與網絡相關或特定於實例的錯誤。
服務器未找到或無法訪問。 驗證實例名稱是否正確以及 SQL Server 是否配置為允許遠程連接。
(提供程序:命名管道提供程序,錯誤:40 - 無法打開與 SQL Server 的連接)
編輯 2
我按照@Khazratbek 在他的回答中的建議修改了我的 webconfig 連接,現在我收到了這個錯誤:
連接超時已過期。 嘗試使用登錄前握手確認時超時時間已過。
這可能是因為登錄前握手失敗或服務器無法及時響應。
嘗試連接到此服務器所花費的時間為 - [Pre-Login] 初始化 = 3672; 握手=0;
這對我來說很奇怪,因為我將超時設置為 0,如果我理解正確,應該將其設置為非超時
CommandTimeout = 0;
web.config 中的連接字符串通常是這樣的:
<connectionStrings>
<add
name="connectionStringName"
connectionString="Data Source=serverName;Initial
Catalog=yourDatabase;Persist Security Info=True;User
ID=userName;Password=password"
providerName="System.Data.SqlClient"
/>
然后讀取連接,如:
System.Configuration.ConfigurationManager.
ConnectionStrings["connectionStringName"].ConnectionString;
按照以下步驟連接到 SQL 服務器:
1-單擊visual studio中的服務器資源管理器,然后單擊它,將顯示添加連接。
2- 輸入您的服務器名稱和密碼,然后單擊確定。
3- 轉到屬性並復制連接字符串。
4- 在此處粘貼復制的連接字符串
connectionString="copied connection string"
首先,在web.config 中,您必須添加 not appSettings ,然后添加下一個:
<connectionStrings>
<add name="Connection1" connectionString="Server=validserver;uid=validuserid;pwd=validpassword;database=validdatabase"/>
</connectionStrings>
然后在您的頁面中:
using System.Web.Configuration;
您的連接字符串將是:
string ConnectionString = WebConfigurationManager.ConnectionStrings["Connection1"].ConnectionString;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.