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"
あります。
発信者が呼び出しを実行するために正しく承認されていることを確認せずにリダイレクト/転送を実行するのは、少しセキュリティ ホールになります。特に、この場合は異なる権限が必要です。
どんな助けでも大歓迎です。
どうもありがとう。