我有一个使用LDAP进行内部用户身份验证的MVC3应用程序。
我刚刚遇到一个用户密码中包含尖括号的情况,例如My<Special>Password
,这是LDAP中的有效密码。当用户尝试登录应用程序时,将引发以下异常:
A potentially dangerous Request.Form value was detected from the client
这是我所期望的,但在这种情况下不是我想要的。
我知道我可以使用LogOn
来装饰[ValidateInput(false)]
方法,但我的应用程序还允许外部用户使用自己选择的密码进行注册,因此我仍然希望捕获任何“潜在危险”表格领域。
使用[ValidateInput(false)]
属性并编写自定义代码来检查用户密码是否有更优雅的解决方案?
答案 0 :(得分:4)
您没有发布您正在使用的模型。但是如果您正在使用模型或者可以转换为简单模型以允许模型绑定,则可以使用[AllowHtml]
修饰密码属性以跳过对该属性的验证。
作为替代方案,您可以使用Request.Unvalidated().Form["Password"]
来访问未经验证的表单数据。