使用c#的Active Directory身份验证(编码问题)



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

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

如何解决此问题?AD是否有任何设置与此有关?

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

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

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

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

希望这能有所帮助!

最新更新