在 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"
权限。
在不检查调用者是否被正确授权执行调用的情况下仅执行重定向/传输将是一个安全漏洞,特别是在这种情况下它需要不同的权限。
任何帮助深表感谢。
非常感谢。