2011-08-26 64 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 '\'