在我的项目中,我使用库DotNetOpenAuth中的OpenIdProviderWebForms和OpenIdRelyingPartyWebForms。
验证是通过用户对域服务器的请求完成的。
登录我的用户的格式为 test_dm \ username 和 username@test.dm.ru
提供者的授权是成功的,但是当openid.GetResponse();我收到错误“登录失败(发送直接消息或获得响应时出错)。”。
正如我发现的那样,由于用户名中的字符.
和/!
(我用/替换了/!)而出现问题。
答案 0 :(得分:0)
OpenID从不在两个网站之间传输用户名。什么代码(在您的网络应用程序中可能)负责将用户名放在URL中?我建议您在将用户名放入网址之前使用Uri.EscapeDataString
来转义用户名。