我在全球範圍內使用RequireHttpsAttribute
。有一個控制器操作,但不應該使用https。我並沒有刪除全局設置,而是在其他地方添加了RequireHttps,但我認爲排除它可能更容易。從AuthorizationContext執行控制器操作
所以我從RequireHttpsAttribute
繼承了這麼遠:
public class MyRequireHttpsAttribute : RequireHttpsAttribute
{
protected override void HandleNonHttpsRequest(AuthorizationContext filterContext)
{
string controller = filterContext.RequestContext.RouteData.GetRequiredString("controller");
string action = filterContext.RequestContext.RouteData.GetRequiredString("action");
if (controller == "Foo" && action == "Bar")
{
filterContext.Result = ???;
}
else
{
base.HandleNonHttpsRequest(filterContext);
}
}
}
我不知道我怎麼可以手動觸發動作。我認爲使用RedirectToRouteResult
會起作用,但不幸的是它會導致重定向循環。
你想重定向到一些動作你如果條件??? – 2014-09-13 16:35:39
是的。基本上我想忽略該特定控制器/操作對的屬性 – 2014-09-13 16:39:10