使用过滤器进行身份验证重定向后,重定向到请求URL

时间:2018-11-09 06:43:24

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

我们有一个需要用户认证才能使用的应用程序。我们使用自定义操作过滤器属性实现了这一点。

这是我们正在使用的过滤器。

public class AuthFilter : ActionFilterAttribute, IActionFilter
{
    public AuthFilter()
    {
    }

    public override void OnActionExecuted(ActionExecutedContext context)
    {

    }

    public override void OnActionExecuting(ActionExecutingContext context)
    {
        var cacheKey = "user-session";
        var isValidAuth = context.HttpContext.Session.GetString(cacheKey);
        if (string.IsNullOrEmpty(isValidAuth))
        {
            context.Result = new RedirectToRouteResult(new RouteValueDictionary(new { action = "Login", controller = "Authentication" }));
        }
    }
}

这就是过滤器的调用方式

[AuthFilter]
public IActionResult Overview()
{
    return View();
}

我们正在多个地方使用此AuthFilter。登录后,我们需要将用户重定向到最初请求的页面用户。

有没有办法实现这一目标?

0 个答案:

没有答案