0

我在对Active Directory进行身份验证时遇到问题。我正试图通过PrincipalContext来验证我的用户。使用c#进行Active Directory身份验证(编码问题)

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

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

+0

根据通过AD提供的凭据检查凭据的文化信息。 – Minus

+0

感谢您的回复,但PrincipalContext.ValidateCredentials()不接受有关文化的任何争论 – ayk

+0

这是一个Web项目吗? – LeffeBrune

回答

0

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

0

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

请求验证是ASP.NET功能,用于检查一个HTTP请求 并决定是否它包含潜在的危险 内容。在这种情况下,具有潜在危险的内容是请求的正文,标题,查询字符串或Cookie中的任何HTML标记或JavaScript代码。 ASP.NET执行此检查是因为URL查询字符串中的标记或 代码可能已添加到请求中以用于恶意目的。

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

希望这会有所帮助!

+0

感谢您的想法,我会检查请求状态。 – ayk

相关问题