Обратная передача происходит, когда запрос отправлен к серверу, никакая потребность не сообщает подробности о безопасности для каждого запроса.
то, Когда u выполняют запрос для другого обратного вызова страницы, используется сервером
Свойство IAuthenticationResponse.ClaimedIdentifier
никогда никогда не содержит эти запрашиваемые вами атрибуты. Он содержит только «имя пользователя» пользователя OpenID.
Вы отправляете запрос без ошибок. Просто добавьте немного к вашей обработке положительного ответа:
// Stage 3: OpenID Provider sending assertion response
switch (response.Status) {
case AuthenticationStatus.Authenticated:
Session["FriendlyIdentifier"] = response.FriendlyIdentifierForDisplay;
FormsAuthentication.SetAuthCookie(response.ClaimedIdentifier, false);
var sreg = response.GetExtension<ClaimsResponse>();
if (sreg != null) { // the Provider MAY not provide anything
// and even if it does, any of these attributes MAY be missing
var email = sreg.Email;
var fullName = sreg.FullName;
// get the rest of the attributes, and store them off somewhere.
}
if (!string.IsNullOrEmpty(returnUrl)) {
return Redirect(returnUrl);
} else {
return RedirectToAction("Index", "Home");
}
break;
// ...