验证过期时使用自己的redirectUri

时间:2019-08-16 13:07:09

标签: c# asp.net-mvc asp.net-core

我得到了要求用户经过身份验证的操作。

OnRedirectToLogin

现在,我为登录会话的用户设置了超时时间,但是从上面的操作视图开始。它将用户重定向到我的应用程序中不存在的页面。 因此,我找到了事件:context,但是我无法从事件Index中找到与用户来自的动作services.AddAuthentication("Cookies") .AddCookie(options => { options.Cookie.Name = "Cookies"; options.ExpireTimeSpan = TimeSpan.FromMinutes(1); options.Events = new CookieAuthenticationEvents { OnRedirectToLogin = (context) => { return Task.CompletedTask; } }; }) 相关的任何内容,因此我可以决定将用户重定向到何处。

returnUrl

登录到期后,是否可以将动作Index中的OnRedirectToLogin存储/发送到<form asp-action=""> @Html.HiddenFor(c => c.ReturnUrl) .... <div class="button-section"> <button name="button" value="no" type="submit">Cancel</button> <button name="button" value="yes" type="submit">Ok</button> </div> </form>

已更新视图:

In file included from subdivision/doosabin/doosabin_pyx.h:12:0,
                 from subdivision/doosabin/doosabin_.cpp:615:
cpp/doosabin/include/doosabin.h:20:10: fatal error: Eigen/Dense: No such file or directory
 #include "Eigen/Dense"
          ^~~~~~~~~~~~~

1 个答案:

答案 0 :(得分:2)

您可以在RedirectContext中访问请求和查询参数。在那里,您可以读取returnUrl参数并执行重定向。

options.Events = new CookieAuthenticationEvents
    {
        OnRedirectToLogin = context =>
            {
                  var returnUrl = context.Request.Query["returnUrl"];
                  context.Response.Redirect(returnUrl);
                  return Task.CompletedTask;
            }
    }