Asp.net mvc 如何让PostActionHandler通过自定义属性返回GetActionHandler?
我们的系统是通过ADFS 2认证的MVC2。因此,当用户单击书签时http://www.foo.com/Car/Details/3,这会命中我们的汽车控制器,调用我们的详细信息获取操作处理程序,并将3作为ID传递给所有基本的MVC内容。我们用[Authorize]属性修饰了这个ActionHandler,并连接了ADFS2,因此页面会重定向到我们的auth服务器,然后再重定向回我们的应用程序,但会使用POST all基本ADFS内容。问题是这个重定向是一个POST,因此调用了我们的Details POST处理程序,但显然它没有我需要的数据 现在,我已经确定了一些检测此场景的代码,这些代码如下所示: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
[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属性中添加代码来注入该功能
因此,我的问题是:
如何添加代码来执行此属性中的此类检查?目前,我们还没有找到我们想要的解决方案,只是简单地将代码粘贴好,在每个控制器的开头都有一个包含该代码的函数调用