3

WebApi には、別の ApiController アクションにリダイレクトできるようにしたいコントローラー アクションがあります。これらのメソッドをカスタムの AuthorizeAttribute ( CustomAuthorizaton) プロパティでデコレートするので、すべてのリダイレクトがこれらの着信セキュリティ フィルターを通過することが不可欠です。

次に例を示します。

public class SomeController : ApiController
{

    [CustomAuthorization("Foo")]
    [System.Web.Http.HttpGet]
    public CustomResponse SomeMethod(int arg1, int arg2)
    {
        ....
    }

}

public class AnotherController : ApiController
{

    [CustomAuthorization("Bar")]
    [System.Web.Http.HttpGet]
    public CustomResponse AnotherMethod(int arg1, int arg2)
    {
        if(arg1 == 2){

           return Redirect to SomeMethod(...) in SomeController ???

        }


    }

}

CustomResponse独自のカスタム応答オブジェクト (この例では)も返していることに気付くでしょう。

したがって、私が助けを必要としているのは、リダイレクトの結果を返す方法と、そのリダイレクトをフィルターCustomResponseを通過させる方法です。CustomAuthorization

明確にするために、呼び出しAnotherMethodには許可のみが必要です"Bar"が、へのリダイレクト中にSomeMethod、呼び出し元にも許可があることを確認する必要が"Foo"あります。

発信者が呼び出しを実行するために正しく承認されていることを確認せずにリダイレクト/転送を実行するのは、少しセキュリティ ホールになります。特に、この場合は異なる権限が必要です。

どんな助けでも大歓迎です。

どうもありがとう。

4

2 に答える 2