0

我在针对 Active Directory 对我的用户进行身份验证时遇到问题。我正在尝试通过PrincipalContext.

我的问题是,当用户密码包含非 ASCII 字符时,即使使用正确的凭据,验证也会失败。但我只在我的产品环境中遇到这个问题。它适用于 UAT 和开发环境。

我该如何解决这个问题?AD的任何设置与此有关吗?

4

2 回答 2

0

这是在黑暗中拍摄的,但请听我说完。这就是为什么我问这是否是一个网络项目。我有类似的问题,症状相同。一位用户来找我说他无法登录我的网站。原来他的密码中有“特殊”字符。这没有意义,但在禁用自定义错误后,我意识到错误是由于 ASP.NET 请求验证引起的:http: //msdn.microsoft.com/en-us/library/hh882339%28v=vs.100%29 .aspx

请求验证是 ASP.NET 中的一项功能,它检查 HTTP 请求并确定它是否包含潜在的危险内容。在这种情况下,潜在危险内容是请求的正文、标头、查询字符串或 cookie 中的任何 HTML 标记或 JavaScript 代码。ASP.NET 执行此检查是因为在 URL 查询字符串、cookie 或发布的表单值中找到的标记或代码可能已出于恶意目的添加到请求中。

在我的代码有机会验证用户密码之前,几乎所有看起来像标签的东西都被标记了,并且运行时抛出了异常。

希望这可以帮助!

于 2012-10-10T23:40:55.330 回答
0

尝试将密码编码更改为 UTF-8

于 2012-10-10T19:46:27.677 回答