1

すぐに使用できる MVC4 OpenId 実装を使用しています。

私はAuthenticationResult使用して取得します:

var result = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl }));

結果では、配列を使用してプロバイダー固有のデータにアクセスできます。

result.ExtraData

質問は次のとおりです。

OpenId ソリューションの一部として、プロバイダーに追加情報を要求できることを知っています。

Google などのデフォルトで提供しないプロバイダーから、具体的に姓と名を要求するにはどうすればよいですか?

ありがとう。

4

2 に答える 2

1

BrockAllenには、 ClaimsとOAuthWebSecurityを統合する興味深いプロジェクトがあります。これにより、さまざまなプロバイダーすべてから追加のデータを取得し、それらを同じものと呼び、ClaimsPrincipal.Current.Claimsコレクションにアタッチするという手間のかかる作業が行われます。

Google OpenIDから正しいデータを取得することに関して、古いバージョンのDotNetOpenAuthにはバグがあります。おそらく、nugetを介した更新で修正されます。

于 2012-10-17T11:08:27.240 に答える
0

また、OAuth2プロバイダーで認証するために、別の/新しいライブラリを最初から作成し、結果のプロファイルデータを使用して、ユーザーのクレームを入力しました。つまり、MVC 4 OAuthWebSecurity(したがってDotNetOpenAuth)の実装を使用しません。

http://brockallen.com/2012/10/26/integrating-claims-and-oauth2/

于 2012-10-27T00:21:23.460 に答える