OpenIDサービスプロバイダからいくつかの属性を要求するようにコードを設定しようとしています。同時に、私はActionResultを返すことを望みます。ここではOpenIDのサンプルMVCプロジェクト内のコード(つまりストレートDotNetOpenId/DotNetOpenAuthのウェブサイトから出てくるが)だ属性とDotNetOpenIDで問題が発生しました
...
try
{
return openid.CreateRequest(Request.Form["openid_identifier"])
.RedirectingResponse
.AsActionResult();
}
catch (ProtocolException ex)
{ ... }
これは素晴らしいですが、それはすべてのオプションを要求する私を示していませんか、必要な属性。 だから、私は(私自身、テストされていないpseduoっぽいコード)を次のことを試してみた....
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を作成するにはどうすればよいですか?
hmm。それは私が思った(そして元々試みた)ものですが、インテリセンスはエラーを示していました。私のコードは家庭なので、今夜チェックします。私はまた、私も最新のバージョンを使用していると確信しています。乾杯もう一度アンドリュー:) –
うん - 作品!私はそれを試して誓う:(heh!真夜中のプログラミングの欠点... :) –