2012-04-20 19 views
0

DotNetOpenAuthを使用してOAuth2 AuthorizationServerとResourceServerの両方を実装するプロジェクトを作成しました。DotNetOpenAuth ResourceServerプリンシパルからユーザーIDを取得

私がしたいことは、クライアントがOAuthによってユーザーのプロファイルである関連リソースを取得する権限を与えられている擬似認証としてOAuthを使用することです。

私はresourceServer.VerifyAccess(request, out result); を使用してIPrincipalを正常に返すことができます。

質問:ResourceServer(Authorization Serverと同じです)では、プリンシパル(または私がアクセスできるもの)からユーザー/ユーザーID /ユーザープロファイルを取得する方法を教えてください。プリンシパル名は、base64でエンコードされた文字列のように見えます。しかし、それは私がアクセスできる他のものとは一致していないようです。

答えて

0

DotNetOpenAuthのResourceServer.VerifyAccessメソッドでは、アクセストークンを承認したユーザーの名前とそのロールがそのトークンに付与されたスコープであるプリンシパルを取得できます。

プリンシパルの名前としてBase64でエンコードされた文字列が表示されている場合は、コードを再確認する必要があります。私はあなたの認証サーバーコードのどこかで、AuthorizationServer.PrepareApproveAuthorizationRequestを認証ユーザー名に渡して呼び出すことをお勧めします。それがどうあるべきかを確認してください。

トークンが暗号化されて署名されているため、転送中に破損している可能性は非常に低いです。

関連する問題