我在網上搜索了一個簡單的解決方案,但我覺得很奇怪,沒有人有辦法「獲取正確的連接字符串,如果密碼包含非字母數字字符「。非字母數字(ex分號)在連接字符串
我的問題:
我有具有包含這些字符中的一個或多個密碼的用戶:
` ~ ! @ # $ %^& * () _ + - = { } | \ : " ; ' < > ? , ./
由於ConnectionString的格式是 「KEY = VALUE; KEY2 = VALUE2」 它如果密碼包含分號,當然是一個問題。
所以我做了一些研究,發現這些「ConnectionString的規則」
所有空白字符,除了那些在值或引號內,被忽略
空白字符會盡管影響連接池機制,但池連接必須具有完全相同的連接字符串
如果分號(;)是值的一部分,則必須用引號(「)分隔
使用單引號(「),如果該值用雙引號(‘)開始
相反,使用雙引號(’)如果值開始以一個單引號(」)
沒有轉義序列支持
值類型是不相關的
名不區分大小寫
如果發生KEYWORD = VALUE對比連接字符串中出現多次,以最後一次出現相關聯的值被用於
然而,如果提供的關鍵字發生在字符串中多次,第一次出現是用來。
如果關鍵字包含等號(=),則必須在其後面加上一個等號,以表明它是關鍵字的一部分。
如果某個值具有前後空格,則必須用單引號或雙引號括起來,即Keyword =「value」,否則空格將被刪除。
然後我讀了一堆線程,人們試圖實現上述東西變成自己的「格式ConnectionString的方法」,但它似乎更場景曝光時,他們就開始了。
我的問題則是:
有沒有人在那裏誰提出了「FormatConnectionstring」方法在ConnectionString中使用 - 還是我做一些完全錯誤的在這裏和我的問題真的存在別的地方?
你試過正則表達式? –
我想過是的,但還沒有拿出解決方案,因爲有很多不同類型的場景(我認爲) – Thomas
你可以想到什麼不同的場景... RegEx適用於所有 –