2011-08-26 102 views
0

我們在ASP.NET應用程序中具有用戶創建功能。這將在數​​據庫中爲新用戶創建一個條目,並在Active Directory中創建一個新帳戶。所有現有用戶都可以使用應用程序中的其他功能進行搜索。特殊字符的必需驗證

目前只有英文字母和數字可以輸入用戶創建。但是,客戶也想輸入特殊字符。當我們嘗試時,我們發現以下兩個問題。

1)當只有特殊字符創建了一個用戶,它拋出錯誤

2)當輸入搜索%(見有@名存實亡的用戶),將返回所有用戶。

請您列出其他可能的問題,以便我們可以形成所需的驗證(如%不應該被允許)。

注意:「英文字母和數字」以外的任何內容都被視爲特殊字符。

DECLARE @CharacterVal VARCHAR(10) 
SET @CharacterVal = '%' 

SELECT * FROM USerDetails WHERE First_Name LIKE @CharacterVal 

感謝

Lijo

回答

0

,如果你是認真的安全請勿通過黑名單做到這一點。獲取客戶需要的字符列表,然後僅列出這些字符。

+0

如果您可以提供什麼是安全允許的特殊字符,我們可以建議客戶。 – Lijo

+0

從客戶處獲取列表,全部嘗試,然後向不可用的報告。 –

+0

定義「安全」。爲什麼%不安全? – tripleee

0

(1)特殊字符是一個更廣泛的問題 - 你可能需要將輸入轉換: http://support.microsoft.com/kb/232580

(2)所有的字符可以使用SQL Server中的例外條款,允許: SELECT列FROM表WHERE 列LIKE '%\ @%' ESCAPE '\'