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

时间:2012-10-10 18:53:40

标签: c# windows active-directory windows-server-2008 windows-authentication

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

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

如何解决此问题? AD有什么设置与此有关吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

在黑暗中拍摄,但是听我说。这就是为什么我问这是否是一个网络项目。我有类似症状的类似问题。一位用户来找我说他无法登录我的网站。事实证明他的密码中有“特殊”字符。它没有意义,但在禁用自定义错误后,我意识到错误是由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或已发布的表单值中找到的代码   可能已被添加到请求中以用于恶意目的。

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

希望这有帮助!