Я пытаюсь настроить свой код для запроса некоторых атрибутов у поставщика услуг OpenID. В то же время я хочу вернуть ActionResult.
Вот код в примере проекта MVC OpenId (который прямо взят с сайта DotNetOpenId / DotNetOpenAuth) ...
try
{
return openid.CreateRequest(Request.Form["openid_identifier"])
.RedirectingResponse
.AsActionResult();
}
catch (ProtocolException ex)
{ ... }
Это замечательно, но не показывает, что я запрашиваю какие-либо необязательные или обязательные атрибуты.
Итак, я попробовал следующее (мой собственный, непроверенный псевдо-код) ....
var fetch = new FetchRequest();
fetch.Attributes.AddRequired(WellKnownAttributes.Contact.Email);
fetch.Attributes.AddRequired(WellKnownAttributes.Name.FullName);
fetch.Attributes.AddRequired(WellKnownAttributes.Name.Alias);
fetch.Attributes.AddRequired(WellKnownAttributes.Preferences.Language);
fetch.Attributes.AddRequired(WellKnownAttributes.Preferences.TimeZone);
fetch.Attributes.AddRequired(WellKnownAttributes.Person.Gender);
openId.CreateRequest(identifier.ToString()).AddExtension(fetch);
Это тоже кажется нормальным. Но ... я не знаю, как теперь запросить результат, который будет ActionResult () ...
Как я могу создать openId.CreateRequest, который позволяет мне определять некоторые обязательные атрибуты и возвращать ActionView?