Tôi đang sử dụng DotNetOpenAuth để tích hợp OpenID trong ứng dụng web của chúng tôi. Mã dưới đây yêu cầu thông tin cho nhà cung cấp.Tại sao không phải là thông tin về người dùng openID đến thông qua giao thức?
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();
}
Vì lý do nào đó, phản hồi từ nhà cung cấp openID không bao giờ có thông tin tôi yêu cầu. Dưới đây là mã số:
// 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");
}
Tôi đã thử: phản hồi. Đã xác định hàng triệu cách và không bao giờ có thông tin giá trị mà tôi có thể làm. Bất kỳ ý tưởng?
Xin chào Andrew: Cảm ơn rất nhiều. Google trả lại email, Yahoo thì không. Tôi đánh giá cao sự giúp đỡ của bạn. – Geo
Yahoo nên bây giờ ... họ chỉ cần nâng cấp để hỗ trợ nó. –