OpenIDサービスプロバイダーにいくつかの属性を要求するようにコードを設定しようとしています。同時に、ActionResultを返したいと思います。
これがOpenIdサンプルMVCプロジェクトのコードです(DotNetOpenId / DotNetOpenAuth Webサイトから直接出てきます)...
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()にする方法がわかりません...
必要な属性を定義してActionViewを返すことができるopenId.CreateRequestを作成するにはどうすればよいですか?