Asp.net mvc 如何让PostActionHandler通过自定义属性返回GetActionHandler?

Asp.net mvc 如何让PostActionHandler通过自定义属性返回GetActionHandler?,asp.net-mvc,asp.net-mvc-2,c#-4.0,Asp.net Mvc,Asp.net Mvc 2,C# 4.0,我们的系统是通过ADFS 2认证的MVC2。因此,当用户单击书签时http://www.foo.com/Car/Details/3,这会命中我们的汽车控制器,调用我们的详细信息获取操作处理程序,并将3作为ID传递给所有基本的MVC内容。我们用[Authorize]属性修饰了这个ActionHandler,并连接了ADFS2,因此页面会重定向到我们的auth服务器,然后再重定向回我们的应用程序,但会使用POST all基本ADFS内容。问题是这个重定向是一个POST,因此调用了我们的Details

我们的系统是通过ADFS 2认证的MVC2。因此,当用户单击书签时http://www.foo.com/Car/Details/3,这会命中我们的汽车控制器,调用我们的详细信息获取操作处理程序,并将3作为ID传递给所有基本的MVC内容。我们用[Authorize]属性修饰了这个ActionHandler,并连接了ADFS2,因此页面会重定向到我们的auth服务器,然后再重定向回我们的应用程序,但会使用POST all基本ADFS内容。问题是这个重定向是一个POST,因此调用了我们的Details POST处理程序,但显然它没有我需要的数据

现在,我已经确定了一些检测此场景的代码,这些代码如下所示:

[Authorize]
[MySpecialHttpGet]
public ActionResult Details(long id)
{
    var model = GetModel(id);
    return View(model);
}

[Authorize]
[MySpecialHttpPost]
public ActionResult Details(long id, ViewModel model)
{
    /***START OF SPECIAL CODE***/
    // If we were posted to by ADFS, redirect to the GET handler.
    if (Request.Form["wa"] != null && Request.Form["wa"].ToLower().Contains("signin"))
    {
        // We were posted to here but need to respond with the GET view.
        return Redirect(Request.Url.AbsoluteUri);
    }
    /***END OF SPECIAL CODE***/

    var result = Something.SaveData(model);
    return result.ActionResultToReturnWith;
}
问题是我需要在应用程序中的每一个PostActionHandler上都这样做,我真的不想这样做。鉴于我已经在所有这些ActionHandler上拥有自定义属性,我想使用这些属性为我注入此功能

现在,MySpecialHttpGet和MySpecialHttpPost除了扩展ActionMethodSelectorAttribute之外,你真的不需要了解什么特别的东西。我想在MySpecialPost属性中添加代码来注入该功能

因此,我的问题是:


如何添加代码来执行此属性中的此类检查?

目前,我们还没有找到我们想要的解决方案,只是简单地将代码粘贴好,在每个控制器的开头都有一个包含该代码的函数调用