使用OpenId提供程序时,基于我见过的任何示例,客户端应用程序将始终执行此操作
public ActionResult Login(string returnUrl /* Forms Auth will add this when it meets a page that needs authorization and redirects */)
{
IAuthenticationResponse response = _openId.GetResponse();
if (response == null)
{
return HandleNeedOpenIdScenario();
}
else
{
return HandleOpenIdProviderSendingAssertion(response, returnUrl);
}
}
HandleNeedOpenIdScenario
会将您退回到身份验证服务器,您将在其中登录并最终发送回http://clientApp/Account/Login
,其中_openId.GetResponse()
不会为空。
我的问题是:GetResponse()
方法中发生了什么?我可以看到在http://openIdServerApp/user/my.account@email.com/
向我的OpenId服务器发出请求,并且使用XRDS信息生成了200响应。但究竟发生了什么?这个电话是如何证明我是谁,我是谁?
(我看过来源,但坦率地说,这超出了我的理解。)
谢谢,
乔