首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 + 项目准备

缓存: 缓存约束派生于无状态约束, 它要求从服务端返回的响应必须明确表明是可缓存的还是不可缓存的. 6. 按需编码: 这允许客户端可以从服务端访问特定的资源而无须知晓如何处理它们....在构建API或微服务时, 这些服务器可以作为网关使用, 因为它们会限制对外暴露的东西也可以更好的与现有系统集成, 所以它们会提供额外的防御层,  使用反向代理服务器(IIS)之后的流图如下: 让web...然后在Startup的Configure方法里调用app.UseMiddleware()即可: 路由 在ASP.NET Core里,使用路由中间件RouterMiddleware...它允许我们把日志记录到各种的追踪监听器上, 例如 TextWriterTraceListener Azure App Service, 在本地运行程序的时候, 这个提供商并不会起作用, 部署到Azure...然后配置Log, 会读取配置数据的Logging部分的数据, 使用控制台Log提供商和Debug窗口Log提供商, 最后设置了默认的服务提供商.

2.7K72
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 (2) + 准备项目

    IOptionsSnapshot 的开销很小, 可以放心使用 日志  ASP.NET Core 提供了6个内置的日志提供商。...LogTrace,记录追踪信息 LogWarning,记录警告信息 在项目中配置和使用Log,只需在Program.cs里调用IWebHostBuilder的ConfigureLogging扩展方法即可...使用scope, 还有一点需要注意, 需要在日志提供商上把IncludeScopes属性设置为true: ? ?...它允许我们把日志记录到各种的追踪监听器上, 例如 TextWriterTraceListener Azure App Service, 在本地运行程序的时候, 这个提供商并不会起作用, 部署到Azure...然后配置Log, 会读取配置数据的Logging部分的数据, 使用控制台Log提供商和Debug窗口Log提供商, 最后设置了默认的服务提供商.

    1.1K00

    项目配置

    ASP.NET Core 预备知识 项目配置 假设在项目的根目录有这样一个json文件, 在ASP.NET Core项目里我们可以使用IConfigurationRoot来使用该json文件作为配置文件...针对上面的firstConfig.json文件, 我们创建以下这个类: 然后调用IConfiguration的Bind扩展方法来把键值对集合对值映射到这个强类型对POCO实例里: 在标准的ASP.NET...LogTrace,记录追踪信息 LogWarning,记录警告信息 在项目中配置和使用Log,只需在Program.cs里调用IWebHostBuilder的ConfigureLogging扩展方法即可...它允许我们把日志记录到各种的追踪监听器上, 例如 TextWriterTraceListener Azure App Service, 在本地运行程序的时候, 这个提供商并不会起作用, 部署到Azure...然后配置Log, 会读取配置数据的Logging部分的数据, 使用控制台Log提供商和Debug窗口Log提供商, 最后设置了默认的服务提供商.

    83620

    ASP.NET Core Web API 集成测试

    ASP.NET Core应用里, 我们在Program.cs里创建WebHostBuilder, 并配置Kestrel Web服务器, 使用Startup类进行应用配置, 注册服务和中间件等....最终在WebHostBuilder上使用Build()来创建WebHost的实例, 它可以用来在特定的URL和端口上运行并监听请求....图中: 当应用/被测试系统在生产环境运行的时候, 它使用Kestrel服务器, 监听HTTP请求, 并把它转化为HttpContext, 然后再传进ASP.NET Core的管道里....由于我这个项目可以看作是真实项目, 所以第一次运行该测试的时候, 测试是Fail的. 因为Startup里面有很多配置并不满足测试要求....该Controller需要很多依赖项, 其中两个还需要使用数据库. 通常情况下集成测试里使用的数据库和生产环境中使用的数据库不同, 在测试环境我更倾向于使用内存类数据库.

    1.4K10

    【ASP.NET Core 基础知识】--安全性--SSL和HTTPS配置

    常见的SSL证书类型包括单域名证书、多域名证书、通配符证书等。根据你的需求选择合适的类型。 选择SSL证书提供商: 选择信誉良好、提供可靠服务的SSL证书提供商。...自签名证书通常更适合用于开发和测试环境,或者用于内部服务和应用程序。在生产环境中,通常建议使用由受信任的证书颁发机构(CA)签发的SSL证书。...如果你使用ASP.NET Core的Kestrel作为Web服务器,你需要确保在启动时正确配置Kestrel以处理HTTPS连接。...这可以通过Web服务器的配置文件来实现,例如在Nginx中使用return 301指令或者在ASP.NET Core应用程序中使用中间件来实现。...具体配置取决于你使用的服务器(如IIS、Nginx等)。 通过使用上述步骤,在ASP.NET Core应用程序中配置中间件来启用HTTPS。

    36700

    在 ASP.NET Core 中处理多个身份验证方案:使用 .NET 8 释放灵活安全性的强大功能

    如果您有兴趣构建一个强大而灵活的身份验证系统,您应该阅读本指南。 为什么使用多种身份验证方案? 在现代应用程序中,通常支持各种客户端和服务,每个客户端和服务都需要不同的身份验证机制。...例如: 微服务通信:内部服务可能会使用 JWT 进行 API 到 API 的通信。 用户身份验证:外部用户可以通过第三方提供商或自定义令牌机制进行身份验证。...旧系统:与旧系统集成可能需要不同的身份验证协议。 我们可以利用 ASP.NET Core 的灵活性来设置多个身份验证方案,从而提供两全其美的效果,而不是强制所有客户端都遵循单一的身份验证方法。...在 .NET 8 中设置多个身份验证方案 在本教程中,我们将使用 ASP.NET Core 和 .NET 8 实现多个身份验证方案,包括针对不同标识服务器的 JWT 身份验证和自定义身份验证处理程序。...通过使用 .NET 8 在 ASP.NET Core 中设置多个身份验证方案,可以轻松管理各种客户端方案的不同身份验证要求。

    19010

    聊聊统一身份认证服务

    背景 公司原有的各个业务系统都是通过域账户来打通的,随着公司平台化、开放战略的推进,公司对外提供的服务必须具备对外集成与被集成的能力,在这种需求下,单纯的内部账户打通已显然不能满足需求,提供统一的账户管理...组织实体 在统一认证身份服务中,组织机构应当是一种实体,与之对应的另一种实体是个人实体(业务上是实体概念,和账户是有区别的)。...身份认证服务实践 在ASP.NET Core Wen API应用程序中配置和启用Identity server中间件 ?...写在最后 在互联网这个开放体系中,任务企业都可以集成第三方的服务来提升自己的服务能力,同时也可以将自己的服务能力开放给第三方提供被集成的能力,从而构建一个开放、共赢的生态体系。...统一身份认证服务应运而生,各企业不再拘泥于内部的身份统一,在企业服务与企业服务之间建立安全可靠的链接,能够加强信息的流通、服务能力的提升,促进企业生态的发展。

    5.3K31

    eShopOnContainers 知多少:Identity microservice

    那进行 API 级别信任决策的第一步就是身份认证——确定用户身份是否可靠。 在微服务场景中,身份认证通常统一处理。一般有两种实现形式: 基于API 网关中心化认证:要求客户端必须都通过网关访问微服务。...下面就着重讲解ASP.NET Core Identity和IdentityServer4在本服务中的使用。...IdentityServer4在ASP.NET Core Identity的基础上,提供令牌的颁发验证等。...认证流程简介 在ASP.NET Core中使用的是基于申明(Claim)的认证,而什么是申明(Cliam)呢?...最后 本文从业务和技术上对本服务进行剖析,介绍了其技术选型,并紧接着简要介绍了ASP.NET Core Identity和IdentityServer4,最后分析源码,一步步揭开其神秘的面纱。

    2.9K20

    eShopOnWeb 知多少

    在分层架构设计中,关注点分离是核心设计思想,每一层独自负责不同的职责。从架构上讲,可以通过将核心业务与基础设施和用户界面逻辑分离来实现。该原则旨在避免紧耦合,又可确保各个模块独立发展。...封装:封装的是什么?是对象的状态和行为。外部对象无需关注其内部的实现机制。 在类中,通过使用访问修饰符来限制外部的访问来实现封装。...如果外部想要操纵对象的状态,它应该通过定义良好的函数(或属性设置器)来实现,而不是直接访问对象的私有状态。 而不同模块之间通过公开定义良好的接口进行方法调用,来实现封装。以隔离内部的实现机制。...由于应用程序内核不依赖于基础设施层,所以可以很容易编写单元测试。 由于UI层也不直接依赖于基础设施层,所以我们可以轻松置换基础设施层的实现(比如使用内存数据库),以进行集成测试。...上下文映射图:限界上下文之间的关联关系。 6. 应用测试 在eShopOnWeb中,还示例了三个测试项目,来指导我们合理的进行测试。 7.

    1.3K10

    你正确理解 AGPL 了吗?

    如果你只是把 Elasticsearch 当作一个后端服务(这也是 99% 的用户场景),通过client端,以调用API的方式把 Elasticsearch “集成” 到你的应用中(实际上,这并不叫集成...AGPL 许可证:在 GPL 的基础上增加了“远程网络交互”条款,进一步扩展了传染性的范围,要求通过网络提供服务的应用也必须开源。...这里我们来逐一解答这些疑问:内部调用(调用基架部门提供的 Elasticsearch 服务):如果你的应用调用的是企业内部部署的 Elasticsearch 服务,比如由基架部门提供的服务,并且这些服务只在内部网络中使用...关键点:内部服务调用:只要服务是在内部网络中使用,不向外部用户提供,这不属于“通过网络提供服务”的范畴,AGPL 和 SSPL 的要求不适用。...然而,如果你的使用场景涉及到更复杂的情况,以下几点是你需要考虑的:直接使用或修改 Elasticsearch 核心代码:如果你在应用中直接使用或修改了 Elasticsearch 的核心代码,或者开发了与其紧密集成的功能

    1.6K12

    Msdn 杂志 asp.net ajax 文章汇集

    loc=zh 使用 AJAX Extensions 客户端进行 Web 服务调用:ASP.NET 2.0 AJAX Extensions 使得在浏览器中运行的客户端 JavaScript 实现了无缝的...您可以编写一个在您的服务器上承载的 .asmx 文件,并通过一个客户端 JavaScript 类调用该服务上方法. http://msdn.microsoft.com/msdnmag/issues/07...ScriptManager 是放置在 Web 窗体上的服务器端控件,在 ASP.NET AJAX 中发挥核心作用。...它的下载分为三个独立的部分:ASP.NET AJAX Extensions (asp.net/ajax/downloads),提供了一组核心的 AJAX 功能,并已经过全面测试;ASP.NET AJAX...在 Silverlight 控件上添加处理程序、设置属性和调用方法的过程与在其他任何控件上的处理过程完全相同。

    2.7K80

    程序员需要了解的.NET Framework 编程的好与坏

    其核心是公共语言运行时 (CLR),它使开发人员有机会使用我们在下面讨论的不同.NET 语言编写 ASP.NET 代码。...ASP.NET Core 允许您构建移动后端、Web 应用程序和服务。它也是跨平台的,可以在 OS X、Windows 和 Linux 上运行。...模块化结构有助于定义对象的行为及其交互,而无需管理对象内部属性。OOP 通过使代码易于管理、更易于测试和响应重複出现的问题来简化编程。它还消除了不必要的编程,通常意味著开发人员的编码更少。....然后你去实现它,一旦你离开他们演示的完美世界,它就会分崩离析,然后你发现文档是为测试版编写的,不再适用,所以你只能猜测在您需要的方法的正确调用签名处。”...企业规模的基础设施。.NET 是否主要为企业使用而设计仍然是一个有争议的问题。但微软确保它提供尽可能广泛的工具集来构建和交叉集成企业产品,包括内部和公共产品。它还支持强大的企业移动生态系统。

    1.9K30

    dotnet 用 MVC 的方式打开 IPC 命名管道

    初始化的逻辑,和纯放在服务器上的 ASP.NET Core 服务应用只有一点点的差别,那就是在初始化时,需要调用 UsePipeIpcServer 扩展方法,注入 IPC 的服务替换掉默认的 ASP.NET...服务名的字符串要求是在当前机器上唯一不重复,推荐采用属性的命名法对其命名传入。...以上就是 GET 和 POST 的例子,几乎看不出来加上 IPC 前后对 ASP.NET Core 应用调用的差别,除了要求需要使用特定的 HttpClient 对象之外,其他的逻辑都相同。...对于业务代码来说,大多数时候不需要关注请求的发起方具体是谁,因此单元测试上可以使用 TestHost 方便进行测试业务代码,或者是在集成测试上测试调用逻辑。...使用 TestHost 可以让单元测试或集成测试不需要关注网络的监听,防止测试错服务,方便在 CI 里加入测试逻辑 刚好此机制的代码也是本库所需要的,通过拷贝了 https://github.com/dotnet

    98420

    Asp.net MVC 之 Contorllers(二)

    URL 重写的核心包括获取请求、解析原始 URL 以及指导 HTTP 运行时环境服务于“可能相关但不同(possibly related but different)” 的 URL。...最后,只有符合预定义的 URL 格式(也就是路由)的请求,才被允许享用 ASP.NET MVC 运行时的服务。所有这些请求都被路由到一个共同的序实例化控制器类的HTTP处理程,并调用其中定义的方法。...默认情况下,ASP.NET 路由系统忽略可以被映射到存在于服务器上的物理文件的 URL 请求。需要注意,如果请求文件在服务器真实存在,即便与路由请求相匹配,路由系统仍然会忽略该请求。...属性路由 NuGet 的 ASP.NET MVC 5 中包含 AttributeRouting 。属性路由是所有有关使用属性直接在控制器的Action方法上定义的路由。...出于这个原因,AttributeRouting项目已启动,现已集成在ASP.NET MVC 5 中,甚至在 Web API 也有集成,将在后面章节讨论。

    1.9K60

    .NET Core如何通过认证机制访问Kafka?

    背景 在实际场景中,开发环境的Kafka服务器一般没有要求通过认证即可发布和读取消息,并且还可以随意创建Topic和Consumer Group。...而在ASP.NET Core的解决方案中,我们经常使用到CAP这个开源项目作为事件总线,在CAP.Kafka项目中,只提供了最基础的Servers配置,文档示例中也只给出了这种只适合开发环境的配置示例,...假设我们已经有了一个ASP.NET Core应用,并且之前已经在开发环境通过CAP项目使用了Kafka,那么对于生产环境或安全要求较高的测试环境,我们应该如何修改呢?...Core这个证书放在什么位置,本文示例是放在这个ASP.NET Core应用目录下的,在实际中建议由运维管理员统一放在一个中心服务器位置,挂载到容器内部可以访问,从而保证证书的安全。...CAP中的异构系统集成 顺带说一下,在CAP这个项目中,如果你的项目都是基于它来做事件总线,那么CAP可以正常的Publish和Subscribe消息,但是如果在你使用它之前已经有了许多的Topic Messages

    1.6K20

    IIS 7.0探索用于 Windows Vista 的 Web 服务器和更多内容

    IIS 7.0 在整个运行库、管理和操作功能方面都提供了可扩展性,以帮助您为特定需要构建端到端解决方案。在核心平台的基础上,IIS 7.0 解决了与服务器的可管理性和操作相关的很多问题。...这样,托管服务器上的应用程序可以在其应用程序中直接设置必需的配置,而不需要求助于服务器管理员或使用外部配置面板。 在 IIS 7.0 中,配置系统是完全可扩展的。...但两者有区别,人们熟悉的 ASP.NET 模型允许现有 ASP.NET 模块和处理程序继续工作在 IIS 7.0 服务器上,但实际上它已完全不同于以前的旧技术。...通常,现有应用程序可以利用集成模式,而不需要使用特定于集成模式的功能的新 ASP.NET 模块。...应用程序管理员可以在将其应用程序上载到服务器时,可以在其应用程序内容内部在 web.config 文件中指定必需的配置,或使用 IIS 管理器工具远程配置其应用程序。

    5.1K90

    IdentityServer4 知多少

    允许用户授权第三方移动应用访问他们存储在其他服务商上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。...OAuth允许用户提供一个令牌而不是用户名和密码来访问他们存放在特定服务商上的数据。每一个令牌授权一个特定的网站内访问特定的资源(例如仅仅是某一相册中的视频)。...这样,OAuth可以允许用户授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容。 OAuth是OpenID的一个补充,但是完全不同的服务。...Web、移动、JavaScript在内的所有客户端类型去请求和接收终端用户信息和身份认证会话信息;它是可扩展的协议,允许你使用某些可选功能,如身份数据加密、OpenID提供商发现、会话管理等。...而关于如何与ASP.NET Identity、EF Core集成,本文并未涉及,详参官方文档。

    3K20

    Orleans 3.0 为我们带来了什么

    使用ASP.NET Bedrock替换网络层 ---- 一段时间以来,社区和内部合作伙伴一直要求支持与TLS的安全通信。...Orleans 3.0使用了一个来自ASP.NET团队倡议的基于Bedrock项目构建的网络层替换了自己的整个网络层,Bedrock旨在帮助开发者构建快速的、健壮的网络客户端和服务器。...这个功能可以简化你的部署拓扑或者向现有程序中额外添加功能。一些团队内部使用联合托管,通过ASP.NET Core健康检查将Kubernetes活跃性和就绪性探针添加到其Orleans Silo中。...这使得开发人员更好的控制Streamitems在存储中的表示方式。他还使Stream提供者可以控制如何写入数据,从而允许Streams与老的系统和Orleans服务集成。...快来加入我们在GitHub和Gitter上的社区,帮助我们实现这些计划。

    1.1K20

    Succinctly 中文系列教程 20220109 更新

    策略 二、玩转 .NET Core 三、为 .NET Core 仓库做贡献 四、使用 VisualStudio 构建 .NET Core 应用 五、.NET 主要工作流 六、在 Linux 上构建 .NET...十四、附录 B:附加参考 Succinctly FakeItEasy 教程 零、简介 一、安装 FakeItEasy 二、单元测试、IoC 和桩 三、FakeItEasy 简介 四、创建赝品 五、将调用配置为伪调用...三、HBase 表的设计 四、使用 Java API 来连接 五、使用 Python 和 Thrift 来连接 六、.NET 和 Stargate 来连接 七、HBase 的架构 八、区域服务器内部 九...四、命令式和函数式交互 五、总结 六、附录 A Succinctly Hive 教程 一、Hive 简介 二、运行 Hive 三、Hive 内部表 四、HDFS 上的外部表 五、HBase 上的外部表...虽然我们追求卓越,但我们并不要求您做到十全十美,因此请不要担心因为翻译上犯错——在大部分情况下,我们的服务器已经记录所有的翻译,因此您不必担心会因为您的失误遭到无法挽回的破坏。(改编自维基百科)

    5.6K30
    领券