【问题标题】:ADFS redirect makes MVC controller methods incapacitatedADFS 重定向使 MVC 控制器方法无法使用
【发布时间】:2020-05-12 12:40:58
【问题描述】:

我有一个 MVC Web 应用程序。

例如有如下控制器:

    public class MyController
    {
        public MyController()
        { ... }

        [HttpGet]
        public ActionResult Index()
        { ... }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult UpdateMethod(string parameter)
        { ... }
    }

现在出现以下情况:

用户打开更新表单并输入值。他等了一会儿,然后提交表格。

方法“UpdateMethod”应该被称为POST。但由于等待时间过长,cookie 或会话已过期,ADFS 正在注销用户,然后自动登录。登录后再次调用(由 ADFS 重定向)“UpdateMethod”,但现在为 获取。所以参数值丢失并出现错误,因为该方法不存在[HttpGet]:

“在控制器上未找到公共操作方法 'UpdateMethod​'”

如果我使用 [HttpGet] 添加类似的方法,我可以处理这种情况。但我不想为每个方法添加一个 HttpGet。

    [HttpGet]
    public void UpdateMethod()
    { ... }

那么应对这种情况的最佳方法是什么?

【问题讨论】:

    标签: asp.net-mvc redirect controller active-directory adfs


    【解决方案1】:

    这样解决:

    1. 在控制器中覆盖 HandleUnknownAction
    2. 如果 Request.UrlReferrer 是 adfs,则检查覆盖
    3. 如果没有,请调用 base.HandleUnknownAction
    4. 它是由 adfs 重定向的(这就像会话超时),您是否自己处理并显示自定义错误视图

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-03
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多