如何在ASP.NET CORE MVC中覆盖默认的Identity AccessDenied路由

敬酒的家伙2

我想返回403状态代码或自定义AccessDenied视图(尚未决定)而不是Identity/Account/AccessDenied?ReturnUrl=%2F页面。但是我只是不知道该怎么做,因为它是默认配置并且可以在后台运行。
我的应用程序上下文:
我有3个角色:SuperAdmin,Admin和Customer。因此,如果用户尝试访问未经授权的控制器/操作,那么我想抛出相应的403状态代码或客户访问被拒绝的视图。
我是Identity的新手,所以我只知道如何自定义IdentityUser并使用Login / SignUp / LogOut和用户角色的基础知识。因此,请耐心等待我或尝试解释尽可能简单的概念,以便像我这样的猴子能够正确理解它。
如果有人需要,我将附加我的Dependecy Injection容器代码。

public void ConfigureServices(IServiceCollection services)
        {

            services.AddControllersWithViews();
            services.AddRazorPages()
                    .AddRazorRuntimeCompilation();

            services.AddDbContextPool<RealStateDbContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("Standard")));

            services.AddIdentity<AppUser, IdentityRole>()
                    .AddEntityFrameworkStores<RealStateDbContext>()
                    .AddDefaultUI()
                    .AddDefaultTokenProviders();

            services.Configure<IdentityOptions>(options =>
            {

                //add this option to identity configuration
                options.User.RequireUniqueEmail = true;
                options.Password.RequiredLength = 1;
                options.Password.RequireDigit = false;
                options.Password.RequiredUniqueChars = 0;
                options.Password.RequireLowercase = false;
                options.Password.RequireNonAlphanumeric = false;
                options.Password.RequireUppercase = false;
            });
}

我正在研究asp.net核心mvc 3.1,并且正在尝试重构脚手架身份代码,因此它可以与剃刀页面技术(最低限度为mvc)配合使用(最低限度)。

Xerillio

如果您想拥有一个自定义页面,则应该能够配置用户尝试访问禁止路径时将用户重定向到的URL。使用默认的Identity配置,您可以通过应用程序cookie设置对此进行调整,如下所示:

services.ConfigureApplicationCookie(options =>
{
    options.AccessDeniedPath = "/MyHttpStatuses/AccessDenied";
});

然后,您可以像平常一样创建Razor页面:

// /Pages/MyHttpStatuses/AccessDenied.cshtml
@page

<h2>Access Denied!</h2>
<p>Damn, looks like you're not important enough. Sorry.</p>

现在,应该将您重定向到自定义URL,并像正常页面一样处理该重定向。注意:如果不需要,您无需更改重定向URL,但这只是一个示例。或者,您可以将其保留为默认设置,并在/Pages/Identity/Account/AccessDenied.cshtml下创建您的Razor页面

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.NET Core更改AccessDenied路由

来自分类Dev

如何在ASP.NET Core 3.1 MVC中进行自定义路由

来自分类Dev

ASP.NET Core MVC默认路由

来自分类Dev

如何在asp.net core 3中添加全局路由前缀?

来自分类Dev

如何在asp.net core中实现经典的webapi 2路由

来自分类Dev

如何在ASP.NET Core中进行条件路由?

来自分类Dev

如何在ASP.NET Core中设置默认区域?

来自分类Dev

如何使 ASP.NET Core MVC 路由生成相对?

来自分类Dev

ASP.Net Core中的动态路由

来自分类Dev

如何在.Net Core中具有许多可选路由

来自分类Dev

如何在ASP.NET CORE 3.0中配置路由以使用带有[FromQuery]参数的重载[HttpGet]方法?

来自分类Dev

如何在 Asp.net Core 项目中使用 SoapCore 在项目路由文件夹中公开 wsdl

来自分类Dev

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

来自分类Dev

Identity如何在具有ASP.NET Core MVC 3.1的单个用户帐户的项目模板中工作?

来自分类Dev

如何在ASP.NET Core 2.2中使用MVC代替剃须刀页面来使用Identity

来自分类Dev

如何在Asp.net Core中缓存资源?

来自分类Dev

如何在ASP.NET Core中设置cookie validateInterval?

来自分类Dev

如何在ASP .NET Core中创建Azure AD用户?

来自分类Dev

如何在ASP.NET Core中获取IIS版本

来自分类Dev

如何在ASP.NET Core 3.0中调用UseWebRoot

来自分类Dev

如何在ASP .NET Core 3.1中设置请求超时

来自分类Dev

如何在ASP .NET Core中创建Azure AD用户?

来自分类Dev

如何在 asp.net core 中创建类扩展?

来自分类Dev

maxReceivedMessageSize 如何在 Asp.net Core Api 中设置?

来自分类Dev

如何在asp.net core中配置依赖

来自分类Dev

ASP.NET MVC Core 3.1基于区域的路由

来自分类Dev

ASP.Net Core MVC项目无法配置路由?

来自分类Dev

Asp.Net Core MVC:无法使用区域配置路由

来自分类Dev

更改ASP.NET Core MVC中的默认cookie名称

Related 相关文章

  1. 1

    ASP.NET Core更改AccessDenied路由

  2. 2

    如何在ASP.NET Core 3.1 MVC中进行自定义路由

  3. 3

    ASP.NET Core MVC默认路由

  4. 4

    如何在asp.net core 3中添加全局路由前缀?

  5. 5

    如何在asp.net core中实现经典的webapi 2路由

  6. 6

    如何在ASP.NET Core中进行条件路由?

  7. 7

    如何在ASP.NET Core中设置默认区域?

  8. 8

    如何使 ASP.NET Core MVC 路由生成相对?

  9. 9

    ASP.Net Core中的动态路由

  10. 10

    如何在.Net Core中具有许多可选路由

  11. 11

    如何在ASP.NET CORE 3.0中配置路由以使用带有[FromQuery]参数的重载[HttpGet]方法?

  12. 12

    如何在 Asp.net Core 项目中使用 SoapCore 在项目路由文件夹中公开 wsdl

  13. 13

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

  14. 14

    Identity如何在具有ASP.NET Core MVC 3.1的单个用户帐户的项目模板中工作?

  15. 15

    如何在ASP.NET Core 2.2中使用MVC代替剃须刀页面来使用Identity

  16. 16

    如何在Asp.net Core中缓存资源?

  17. 17

    如何在ASP.NET Core中设置cookie validateInterval?

  18. 18

    如何在ASP .NET Core中创建Azure AD用户?

  19. 19

    如何在ASP.NET Core中获取IIS版本

  20. 20

    如何在ASP.NET Core 3.0中调用UseWebRoot

  21. 21

    如何在ASP .NET Core 3.1中设置请求超时

  22. 22

    如何在ASP .NET Core中创建Azure AD用户?

  23. 23

    如何在 asp.net core 中创建类扩展?

  24. 24

    maxReceivedMessageSize 如何在 Asp.net Core Api 中设置?

  25. 25

    如何在asp.net core中配置依赖

  26. 26

    ASP.NET MVC Core 3.1基于区域的路由

  27. 27

    ASP.Net Core MVC项目无法配置路由?

  28. 28

    Asp.Net Core MVC:无法使用区域配置路由

  29. 29

    更改ASP.NET Core MVC中的默认cookie名称

热门标签

归档