Я использую DotNetOpenAuth для интеграции openID в нашем веб-приложении. Код ниже запрашивает информацию у поставщика.Почему нет информации о пользователе openID, проходящем через протокол?
try
{
var req = openid.CreateRequest(Request.Form["openid_identifier"]);
req.AddExtension(new DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.ClaimsRequest
{
Email = DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.DemandLevel.Require,
FullName = DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.DemandLevel.Require,
Nickname = DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.DemandLevel.Request,
PostalCode = DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.DemandLevel.Request
});
return req.RedirectingResponse.AsActionResult();
}
По какой-то причине ответ поставщика openID никогда не поставляется с информацией, которую я запрашиваю. Ниже приведен код:
// Stage 3: OpenID Provider sending assertion response
switch (response.Status) {
case AuthenticationStatus.Authenticated:
Session["FriendlyIdentifier"] = response.FriendlyIdentifierForDisplay;
FormsAuthentication.SetAuthCookie(response.ClaimedIdentifier, false);
if (!string.IsNullOrEmpty(returnUrl)) {
return Redirect(returnUrl);
} else {
return RedirectToAction("Index", "Home");
}
Я пробовал: response.ClaimedIdentifier миллиона способов и он никогда не имеет ценную информацию, что я могу сделать что-то с. Есть идеи?
Hi Andrew: Большое спасибо. Google возвращает электронное письмо, Yahoo - нет. Я ценю вашу помощь. – Geo
Yahoo должен быть теперь ... они просто обновлены, чтобы поддержать его. –