如何在ASP.NET MVC 6(ASP.NET Core)中获取returnUrl AccessDeniedPath

Kolya_Net

我使用最新版本的ASP.NET MVC 6。

以下设置是设置Startup.cs文件:

public void ConfigureServices(IServiceCollection services)
{
            services.AddIdentity<ApplicationUser, ApplicationRole>(options =>
            {
                options.Cookies.ApplicationCookie.LoginPath = new PathString("/account/login");
                options.Cookies.ApplicationCookie.AccessDeniedPath = new PathString("/error/accessdenied");
                options.Cookies.ApplicationCookie.ExpireTimeSpan = TimeSpan.FromDays(1);
                options.Cookies.ApplicationCookie.SlidingExpiration = false;
                options.Cookies.ApplicationCookie.AutomaticAuthenticate = true;
                options.Cookies.ApplicationCookie.AutomaticChallenge = true;
            })
                .AddEntityFrameworkStores<ApplicationDbContext>()
                .AddDefaultTokenProviders();
}

Account控制器中有动作Login

        [HttpGet]
        [AllowAnonymous]
        public IActionResult Login(string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            return View();
        }

在上面的方法中,我没有问题returnUrl

另外在控制器上Error有动作AccessDenied

        [AllowAnonymous]
        [HttpGet]
        public IActionResult AccessDenied(string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            return View();
        }

但是,当用户无权访问站点页面时,系统会将用户转发到页面../error/accessdenied

目前,在我重定向之后,returnUrl值为null

我可以获取用户重定向到的页面的地址(及其适用于LoginPath)吗?

Fabien PERRONNET

看来它将在RC2中发布,请查看GitHub上的CookieAuthorizationHandler.HandleForbiddenAsync方法源代码

protected override async Task<bool> HandleForbiddenAsync(ChallengeContext context)
{
    var properties = new AuthenticationProperties(context.Properties);
    var returnUrl = properties.RedirectUri;
    if (string.IsNullOrEmpty(returnUrl))
    {
        returnUrl = OriginalPathBase + Request.Path + Request.QueryString;
    }
    var accessDeniedUri = Options.AccessDeniedPath + QueryString.Create(Options.ReturnUrlParameter, returnUrl);
    var redirectContext = new CookieRedirectContext(Context, Options, BuildRedirectUri(accessDeniedUri), properties);
    await Options.Events.RedirectToAccessDenied(redirectContext);
    return true;
}

您可以在Home存储库中获得有关如何从RC1迁移到RC2的反馈

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

成功登录的用户使用 ASP.NET MVC CookieAuthentication 不断被重定向到 AccessDeniedPath

来自分类Dev

如何在ASP NET MVC 6中更新模型?

来自分类Dev

ASP.NET MVC 6(ASP.NET Core或ASP.NET5)中的友好URL

来自分类Dev

如何在ASP.NET Core MVC 6中为用户保留策略授权结果?

来自分类Dev

如何在ASP.NET Core 1 MVC 6中模拟IFormFile进行单元/集成测试?

来自分类Dev

如何在ASP.NET MVC中获取视图路径

来自分类Dev

ASP.NET MVC 6中的TryValidateModel

来自分类Dev

如何在ASP.NET Core中的.cshtml文件中获取当前的MVC区域名称

来自分类Dev

如何在ASP.NET Core MVC App中获取DropDownList的选定值

来自分类Dev

如何在asp.net mvc core中获取页面路径

来自分类Dev

ASP.NET Core / MVC6中的WebTelemetryInitializerBase

来自分类Dev

如何在Asp.Net Core MVC 1.0(aka MVC 6 RC1)中访问会话超时值?

来自分类Dev

如何在ASP.NET 5 / MVC 6中的单元测试中访问HttpContext

来自分类Dev

Asp.Net核心MVC6如何在Identity 3中初始添加角色

来自分类Dev

如何在ASP.NET MVC 6中注册ILogger以进行注入

来自分类Dev

如何在Asp.net Identity 3.0和MVC 6中打开角色?

来自分类Dev

如何在Asp.net MVC 6中使用NHaml(找不到模板错误)

来自分类Dev

如何在Asp.Net MVC 6中取回AppSettings配置?

来自分类Dev

如何在ASP.net 5.0(MVC6)中执行对REST API的请求

来自分类Dev

如何在ASP.NET MVC 6中添加基本控制器

来自分类Dev

如何在ASP.NET MVC中重置会话超时

来自分类Dev

我如何在ASP.NET MVC中隐藏div

来自分类Dev

如何在ASP.NET MVC中运行作业?

来自分类Dev

如何在ASP.NET MVC中配置HTML压缩

来自分类Dev

如何在ASP.NET MVC中组织DAL

来自分类Dev

如何在ASP.NET MVC中读取PPT文件?

来自分类Dev

如何在ASP Net MVC 3中运行迁移

来自分类Dev

如何在Asp.net MVC中实现插件/插件?

来自分类Dev

如何在ASP.NET MVC中创建Webhook?

Related 相关文章

  1. 1

    成功登录的用户使用 ASP.NET MVC CookieAuthentication 不断被重定向到 AccessDeniedPath

  2. 2

    如何在ASP NET MVC 6中更新模型?

  3. 3

    ASP.NET MVC 6(ASP.NET Core或ASP.NET5)中的友好URL

  4. 4

    如何在ASP.NET Core MVC 6中为用户保留策略授权结果?

  5. 5

    如何在ASP.NET Core 1 MVC 6中模拟IFormFile进行单元/集成测试?

  6. 6

    如何在ASP.NET MVC中获取视图路径

  7. 7

    ASP.NET MVC 6中的TryValidateModel

  8. 8

    如何在ASP.NET Core中的.cshtml文件中获取当前的MVC区域名称

  9. 9

    如何在ASP.NET Core MVC App中获取DropDownList的选定值

  10. 10

    如何在asp.net mvc core中获取页面路径

  11. 11

    ASP.NET Core / MVC6中的WebTelemetryInitializerBase

  12. 12

    如何在Asp.Net Core MVC 1.0(aka MVC 6 RC1)中访问会话超时值?

  13. 13

    如何在ASP.NET 5 / MVC 6中的单元测试中访问HttpContext

  14. 14

    Asp.Net核心MVC6如何在Identity 3中初始添加角色

  15. 15

    如何在ASP.NET MVC 6中注册ILogger以进行注入

  16. 16

    如何在Asp.net Identity 3.0和MVC 6中打开角色?

  17. 17

    如何在Asp.net MVC 6中使用NHaml(找不到模板错误)

  18. 18

    如何在Asp.Net MVC 6中取回AppSettings配置?

  19. 19

    如何在ASP.net 5.0(MVC6)中执行对REST API的请求

  20. 20

    如何在ASP.NET MVC 6中添加基本控制器

  21. 21

    如何在ASP.NET MVC中重置会话超时

  22. 22

    我如何在ASP.NET MVC中隐藏div

  23. 23

    如何在ASP.NET MVC中运行作业?

  24. 24

    如何在ASP.NET MVC中配置HTML压缩

  25. 25

    如何在ASP.NET MVC中组织DAL

  26. 26

    如何在ASP.NET MVC中读取PPT文件?

  27. 27

    如何在ASP Net MVC 3中运行迁移

  28. 28

    如何在Asp.net MVC中实现插件/插件?

  29. 29

    如何在ASP.NET MVC中创建Webhook?

热门标签

归档