1

servicestack 用のプラグインを作成しており、サービスに組み込まれているエラー処理を利用したいと考えています。アイデアは、ルートが処理される前にいくつかのロジックを実行し、403 エラーを返す可能性があるということです。これを行う方法は、 a を追加して、その内部からaRequestFilterをスローすることだと考えました。UnauthorizedAccessException

ただし、これは機能せず、応答は空になります。通常はこれらを処理する try/catch が に適用されていないようRequestFiltersです。にはエラー応答を作成するメソッドがありますが、受信した にこれを適切に追加する方法がわかりDtoUtilsません。HandleException()IHttpResponseRequestFilter

サービス内からできるように例外をスローできるルーティング前のロジックを追加する別の方法があるかどうか、またはRequestFilter.

編集

プラグインによって返されるエラーが、サービスでスローされた例外によって返されるエラーと (できるだけ厳密に) 一致するようにします。

DtoUtils.HandleExceptionSS が応答を構築する方法のように見えますが、次のようにStackOverflowExceptionプラグインから呼び出そうとするとa がスローされます。

var error = new HttpError(HttpStatusCode.Forbidden, "UnauthorizedAccessException", message);
//_appHost is stored by the original Register() call
var result = DtoUtils.HandleException(_appHost, request, error);
response.WriteToResponse(request, result);
response.EndServiceStackRequest();
4

2 に答える 2