当用户单击OpenIdButton以登录myOpenID时,他们会导航到myOpenID登录页面并提示输入用户名和密码。
返回的ClaimedIdentifier以https开头(注意's')
当用户在OpenIdLogin控件中输入用户名时,返回的ClaimedIdentifier以http(no's')开头。
为什么会这样?更重要的是,如果返回值可以根据登录技术发生变化,我如何依赖数据库中的一致用户名?
这是一个错误还是我做错了什么?
肯
答案 0 :(得分:2)
一种(虽然不推荐)方法是剥离URL的协议路径。
此外,它不是库中的错误,它只是为不同的身份验证方法返回不同标识符的同一提供商 - Google也是这样做的(帐户与配置文件)。
当用户输入“x.myopenid.com”时,它会(根据规范)翻译为“http://x.myopenid.com”,因此服务器会使用http://返回标识。
如果用户输入https://x.myopenid.com,服务器将使用https://返回身份。
另一件事是MyOpenID应该从http重定向到https,但不会这样做。