.net core web 中使用app.UseRouter的几种使用方式

Web API学习笔记(六)——路由(Routing) 1.路由是将传入http请求(URL)映射到特定资源的过程(a action method)。2.我们可以使用唯一的URL访问任何的资源。3.一个资源可以有多个唯一的URL。4.多个资源不能具有相同的URL。 阅读详情
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    loggerFactory.AddConsole();
    if(env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    app.UseHangfireServer();
    app.UseHangfireDashboard();
    //方式一
    //app.Run(async (context) =>
    //{
    //    await context.Response.WriteAsync("Hello World!");
    //});
    //方式二
    //var endpoint = new RouteHandler((c) => c.Response.WriteAsync("Hello, I am Routing!"));
    //app.UseRouter(endpoint);
    //方式三
    var endpoint = new RouteHandler((c) => c.Response.WriteAsync($ "Hello, I am Routing! your item is {c.GetRouteValue("
        item ")}"));
    var resolver = app.ApplicationServices.GetRequiredService < IInlineConstraintResolver > ();
    var runRoute = new Route(endpoint, "{item=home}", resolver);
    app.UseRouter(runRoute);
    //方式四
    var runRoute1 = new Route(endpoint, "{item=home}", resolver);
    var otherRoute = new Route(endpoint, "other/{item=other_home}", resolver);
    var routeCollection = new RouteCollection();
    routeCollection.Add(runRoute1);
    routeCollection.Add(otherRoute);
    app.UseRouter(routeCollection);
    //方式五
    var routeBuilder = new RouteBuilder(app)
    {
        DefaultHandler = endpoint,
    };
    routeBuilder.MapRoute("default", "{item=home}");
    routeBuilder.MapRoute("other", "other/{item=other_home}");
    app.UseRouter(routeBuilder.Build());
    //方式六,改写handler
    var myendpoint = new MyRouteHandler();
    var myrouteBuilder = new RouteBuilder(app)
    {
        DefaultHandler = myendpoint,
    };
    myrouteBuilder.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
    app.UseRouter(myrouteBuilder.Build());
}

自定义hanlder

public class MyRouteHandler: IRouter
{
    public VirtualPathData GetVirtualPath(VirtualPathContext context)
    {
        return null;
    }
    public Task RouteAsync(RouteContext context)
    {
        context.Handler = (c) =>
        {
            var printStr = $ "controller:{c.GetRouteValue("
            controller ")}," + $ "action:{c.GetRouteValue("
            action ")},id:{c.GetRouteValue("
            id ")}";
            return c.Response.WriteAsync(printStr);
        };
        return Microsoft.AspNetCore.Routing.Internal.TaskCache.CompletedTask;
    }
}
[Asp.Net Core]鉴权授权 鉴权授权 为了拦截一些操作; 传统的授权方式;session/Cookies来完成; 1.在请求某个Action之前去做校验,验证当前操作者是否登录过,登录过就有权限 2.如果没有权限就跳转到登录页中去 AOP–Filter; ActionFilter: 传统的登陆,需要匿名; .NET5鉴权授权 通过中间件来支持; 第一步:在 app.UseRouting();之后,在app.UseEndpoints()之前,增加鉴权授权; 鉴权: app.UseAuthentication();—检测用户是否登录 授权 阅读详情

相关推荐

MATLAB安装配置libsvm(附MinGW64配置)

首先声明版本,本人PC系统Windows10 64bit,matlab安装的2016b,libsvm安装的version3.2.21.首先需要下载libsvm包:从林教授的网站上下载: http://www.csie.ntu.edu.tw/~cjlin/libsvm/2.将libsvm3.2.2解压到matlab/toolbox目录下:解压后:D:\matlab2016b\toolbox\libs...

github_35807147的博客 4万+

vue系列(四)——路由的使用

本篇博客单独讲一下Vue Router(路由)的使用,总结及记录一下。本文基于vue3项目中的实际应用场景讲解。内容包含: 1、安装使用; 2、传参方式及特点; 3、静态设置标题,动态修改标题; 4、路由守卫拦截; 5、嵌套路由; 6、路由跳转监听; 7、动态添加路由; .........

xxfen_的博客 2073

仿真每日一练 | Workbench如何在网格节点施加载荷

打开Workbench 2020 R2,在分析系统中双击静力分析工程项目,双击Geometry打开Design Modeler,在菜单栏的单位(Units)修改为毫米(Millimeter),在XY平面创建草图,在草图内绘制矩形并标注尺寸,拉伸长方体,如图1所示。:单个零部件,无连接关系,但需定义一个节点组件,如图5所示,选择Create Named Selection。对添加的节点组件施加Y方向50N的力,如图8所示。1-1-3.有限元系统模型构建。1-1-1.几何模型构建。1-1-2.材料定义。

ansysxuexizhe的博客 1236

vue-router的使用总结

以一个刚接触vue的新人角度说一说router的使用逻辑吧。

wjy_misisess的博客 2009

JESD204B Subclass 1的SYSREF机制

SYSREF 是一个系统级同步脉冲信号,用于对齐 JESD204B 中的 LMFC(Local Multi-Frame Clock),从而实现每次建链的延迟一致性。核心点内容说明是系统参考跨多个芯片、多通道实现精确同步控制 LMFC决定所有设备的 LMFC 对齐点仅用于 Subclass 1是 JESD204B 实现确定性延迟的前提条件一般通过时钟芯片生成推荐使用 AD9528、LMK04828,支持 JESD204 专用输出建链过程中关键作用。

weixin_41230430的博客 1832

通达信双紫擒龙指标实战指南:从源码解析到精准安装

本文详细解析了通达信双紫擒龙指标的核心逻辑、源码获取与安全验证、安装流程及实战应用技巧。通过紫紫红黄四种颜色信号捕捉趋势转折点,结合MACD、布林通道和成交量加权算法,提升交易准确性。文章还提供了个性化设置、信号解读及常见问题解决方案,帮助投资者高效运用该指标。

weixin_29248611的博客 1057

vue3路由跳转及传参

vue3路由跳转和传参

m0_74060440的博客 1950

【乐企-工具篇】生成发票左上角二维码

【代码】【乐企-业务篇】生成发票左上角二维码。

九七的博客 708

practical-aspnetcore 实战:在最小宿主 `WebApplication` 中通过 `Use` 编写与 `MapGet` 协同的 ASP.NET Core 中间件

本篇技术指南以 [projects/minimal-hosting/web-application-middleware](https://link.gitcode.com/i/beb2da5b508b064b06deb9178d2c24b7) 样本为核心,讲解如何使用 ASP.NET Core 新一代最小宿主类 `WebApplication` 编写请求处理中间件:先注册两个匿名中间件,再挂载

gitblog_00493的博客 638

【博文汇总】I2C总线学习

将这一周学习I2C总线的文章汇总一下。 基础知识学习 触发器的建立时间和保持时间 如何学习总线技术 TTL电平和CMOS电平 深入理解 关于I2C和SPI总线协议 I2C总线深入浅出 I2C总线信号时序总结 对I2C总线协议的一些理解 对I2C总线的时钟同步和总线仲裁的深入理解 I2C总线学习终结,开始SPI总线的学习 深入理解IIC总线时序

ce123的技术博客 6216

uniapp(vue3)- 详解安装/使用pinia报错reportJSException >>>> exception function:createInstanceContext, excepti

uniapp vue3 pinia报错reportJSException >>>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack -> at useStore,H5网页,微信小程序,安卓App,苹果App,nvue,uniapp安装使用pinia出现报错at useStore,uniapp+vue3+ts 使用pinia报

🏆 前端领域优质创作者 4048

ASP.NET Core 最小托管实战:用 CreateApplicationBuilder 与 Map 为不同路由构建独立中间件管道

本文基于 `practical-aspnetcore` 仓库 `minimal-hosting` 系列中的 **web-application-middleware-pipeline-2** 示例([示例说明](https://link.gitcode.com/i/5d63c661e31c0fbc85d880af5618116e)),讲解如何在全新的 `WebApplication` 最小托管模型

gitblog_00515的博客 381

海康VisionMaster与西门子Smart 200进行S7通信

海康VisionMaster与西门子Smart 200进行S7通信

haier123888的博客 8180

ASP.NET Core MVC 源码学习:Routing 路由

前言 最近打算抽时间看一下 ASP.NET Core MVC 的源码,特此把自己学习到的内容记录下来,也算是做个笔记吧。 路由作为 MVC 的基本部分,所以在学习 MVC 的其他源码之前还是先学习一下路由系统,ASP.NET Core 的路由系统相对于以前的 Mvc 变化很大,它重新整合了 Web Api 和 MVC。 路由源码地址 :https://github.com/aspnet/Ro

dotNET跨平台 426

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Connection-Allowlist 出站连接白名单实战:modern-web-guidance 安全指南精读

本指南聚焦 modern-web-guidance 仓库中 `restrict-outbound-connections` 这一安全用例,讲清楚如何用 `Connection-Allowlist` HTTP 响应头把页面与 Worker 的出站通信收敛到一份显式白名单,从而阻断未授权第三方请求与客户端数据外泄。读完后你将掌握:RFC 9651 Inner List 的正确序列化方式、按 `Sec-

gitblog_00312的博客 243

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

如何快速上手Basalt:从零到本地LLM流式输出只需5步,完整推理服务器部署教程

Basalt 是一款运行在 NVIDIA Blackwell GPU 上的**本地 LLM 推理引擎**,专为 Qwen3.8-Flash-Next 等 MoE 大模型设计,自带 Web 界面,并完全兼容 OpenAI 与 Anthropic API。本教程带你用 **5 步**完成 Basalt 推理服务器部署——无需云、无需 API Key,数据全程不出本机,回复逐字流式输出。 > 💡 适

gitblog_00725的博客 170

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

CoreAdmin与NextJS集成案例:构建现代化前后端分离管理系统

CoreAdmin是一款为ASP.NET Core和.NET 10设计的全自动管理网站CRUD UI生成器,而NextJS则是React生态中最流行的服务端渲染框架之一。将这两者结合,能够快速构建出功能完善、性能优异的现代化前后端分离管理系统。本文将通过实际案例,详细介绍如何实现CoreAdmin与NextJS的无缝集成,让你轻松掌握这种高效开发模式。 ## 为什么选择CoreAdmin与Nex

gitblog_01151的博客 729

practical-aspnetcore 实战:WebApplication 中如何用 RouteBuilder 与 MapMiddlewareGet 组合多条独立中间件管道

本篇文章围绕 [practical-aspnetcore](https://link.gitcode.com/i/730903ceb5d30dac10f1c09d2f9a1e92) 仓库中 `projects/minimal-hosting/web-application-middleware-pipeline` 示例展开,讲解如何在极简托管的 `WebApplication` 上,通过 `Use

gitblog_00028的博客 355

Vue.NetCore 前端工程 vol.web 开发指南:Vue3 + Vite 的安装、调试、构建与联调实战

本指南以仓库前端项目 [vol.web/README.md](https://link.gitcode.com/i/fcbe04a94d2ca4b4712706eabf2952ad) 中的项目安装与构建说明为主线,系统讲解 Vue.NetCore 开源快速开发框架前端工程从环境准备、依赖安装、开发调试、生产构建到与后台接口联调的全流程操作。读者学完后,将能够独立把 vol.web 前端跑起来、接入

gitblog_01176的博客 427

SpringBoot + Vue3 图书管理系统从零搭建实战

前后端分离架构已成为现代Web开发的主流模式,前端负责交互展示,后端通过RESTful API提供数据服务,两者通过JSON协作完成业务闭环。这种架构能显著提升开发效率,便于团队并行开发,是企业级项目的常用选择。在Java后端与前端工程化实践中,图书管理系统凭借其清晰的功能边界和适中的业务复杂度,成为检验前后端分离能力的经典项目。本内容将系统讲解如何基于Spring Boot、MyBatis-Plus、Vue3与Element Plus搭建一套完整的图书管理系统,覆盖数据库设计、后端分层实现、前端页面交互、

weixin_34080951的博客 353

easypan部署 & qq登录

文章目录项目部署学习链接1.安装ffmpeglinux centos下安装ffmpeg的详细教程2. springboot + maven 多环境配置文件pom.xmlapplication.propertiesapplication-dev.propertiesapplication-prod.properties 项目部署 学习链接 linux下安装ffmpeg的详细教程 - 完全参照这个安装的 FFmpeg视频处理入门教程----从安装到使用(Linux版) linux下ffmpeg安装教程(小学生都

pscool的博客 3268

Vue3集成luckysheet实现Excel在线编辑

本文详细介绍了在Vue3项目中集成Luckysheet在线表格组件的完整方案及问题解决过程。主要内容包括: 安全优化方案 提出三种解决裸URL访问漏洞的方案:临时签名过渡方案、Vue3集成原版Luckysheet、迁移Univer新组件,最终选择中长期的Vue3集成方案。 技术实现细节 通过CDN方式引入Luckysheet资源 使用MutationObserver监听实现标题字数限制 事件委托机制处理返回按钮跳转及悬浮提示残留问题 全局资源管理确保组件卸载时完全清理

Mr.小灰狼_随笔 910

【express】app.use和app.get的区别及解析

转载至:http://blog.csdn.net/wthfeng/article/details/53366169 写在前面:最近研究nodejs及其web框架express,对app.use和app.get没理解清,以致踩了坑浪费不少时间,我根据自己实践及总结出此博客,若有错误还请大家多多指教。 app对象app对象一般用来表示Express程序。通过调用Express模块导出的顶层的expre...

weixin_34268610的博客 788

vue3引入router+axios+element-plus教程

3.2在main.js中加入如下配置,配置完之后便可以直接调用Element-plus的组件了,这是全部引入的,按需引入可以去官网查看怎么操作。2.3在App.vue中调用试一下,引入getCurrentInstance用于获取全局变量。1.4去APP.vue中进行测试,进行手动路由跳转时,引入useRouter。1.2安装成功后新建router目录,创建index.js,复制如下代码。1.3将router挂载至全局,在main.js中加入如下代码。1.1在工程目录处,使用npm安装vue-router。

careful_thebrave的博客 1310

nodejs理解Express中router.use app.use 拦截器 next方法 结合实例新手向

理解Express中Router 拦截器 next方法 结合实例新手向 在刚学习express的时候,大家会不会经常遇到这样一个问题。这个app.use,router.use有什么区别,这个next又是做什么的? 如果你对这几个概念不清楚。请好好看下面的例子 如果你的代码只是上面这样写,是错误的写法。只有/app这个接口会生效,/router不会。你只需要记住这样一句话:路由器的行为就像中间件本...

weixin_42565137的博客 4844
上一篇: SQL---关联子查询(correlated subquery)
下一篇: 几道常见的SQL面试题,看你能答对几道?
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值