ちょっとだけ更新
AuthenticateAttributeまたはRequiredRoleAttributeを使用しませんでしたServiceStack.ServiceInterface。
とRequestFilterAttributeが提供する機能を置き換えるために、2 つのカスタムを作成します。AuthenticateAttributeRequiredRoleAttribute
各 customRequestFilterAttributeのExecuteメソッドでは、dotnetopenauth のメソッドを使用してアクセス トークンを検証しています。
//httpReq==req from Execute(IHttpRequest req, IHttpResponse res, object requestDto)
アクセス トークン検証のコードは次のとおりです。詳細については、servicestack と dotnetopenauth の両方の関連ドキュメントを参照してください。ResourceServer は dotnetopenauth のクラスです
HttpRequestBase reqBase = new HttpRequestWrapper((System.Web.HttpRequest)httpReq.OriginalRequest);
var resourceServer = new ResourceServer(new StandardAccessTokenAnalyzer(AuthorizationServerPublicKey, ResourceServerPrivateKey));
IPrincipal ip = null;
resourceServer.VerifyAccess(reqBase, out ip);
ipがnull認証されない場合、そうでない場合null、着信要求は有効であり、 を使用しipて役割を確認できます。ip.IsInRole(requiredRole)
これがチェックを行う正しい方法かどうかはわかりませんが、私にとってはうまくいきます。より良い解決策は大歓迎です。