0

DotNetOpenAuth を使用して OAuth2 AuthorizationServer と ResourceServer の両方を 1 つに実装するプロジェクトを作成しました。

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

ResourceServer ではresourceServer.VerifyAccess( request, out result ); 、IPrincipal を正常に返すために使用できます。

私の質問は、ResourceServer (認可サーバーと同じ) で、プリンシパル (またはアクセスできる他のもの) からユーザー/ユーザー ID/ユーザー プロファイルを取得するにはどうすればよいかということです。プリンシパル名は、base64 でエンコードされた文字列のように見えます。しかし、それは私がアクセスできる他のものと一致しないようです.

4

1 に答える 1

0

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

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

トークンは暗号化および署名されているため、転送中に破損した可能性はほとんどありません。

于 2012-04-21T02:54:41.233 に答える