问题标签 [asp.net-core-middleware]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2844 浏览

asp.net-core - 我是否需要在 ASP.NET Core 中调用 AddMemoryCache 才能使缓存工作?

在最新的 .net Core (1.0.0-preview2-003131) 中,我对启动的服务以及它们的默认设置感到困惑。

具体来说,我注意到在一个新的核心 Web 项目中,调用了 AddMvc() 但没有调用 Add AddMemoryCache() (两者似乎都可用于应用程序)。更进一步,似乎在帮助文档中:https : //docs.microsoft.com/en-us/aspnet/core/performance/caching/memory 它显示了 AddMemoryCache。

AddMemoryCache() 是否以某种方式被加载到其他地方?如果没有,如果没有添加服务,为什么缓存似乎可以工作?

0 投票
1 回答
2344 浏览

.net - JwtBearerMiddleware 的自定义令牌位置

我们有一个调用客户端请求我们的系统,它没有将承载令牌放在标准位置(“授权”标头)我想创建一个自定义处理程序,在正确的位置查找 JWT。除了分叉JwtBearerMiddleware实现之外,还有什么更简洁的方法可以告诉中间件使用什么处理程序?

更简单的选择是通过在 JWT 中间件运行之前将 JWT 注入到请求管道中的正确位置(请求标头)来重写请求。但这似乎有点骇人听闻。

0 投票
1 回答
1030 浏览

asp.net - Nuget 包和 ASP.NET Core 应用程序之间的 System.Net.Http 依赖项不匹配

背景

我正在尝试编写一些中间件来使用 ASP.NET Core 进行自定义身份验证。因为我依赖于一些使用 .NET 框架的专有代码,所以我使用的是 ASP.NET Core 的 .Net Framework 版本,而不是 ASP.NET Core 的 .NET Core 版本。

最初,我将中间件直接构建到 ASP.NET Core 应用程序中,并使用 Nuget 安装了我的专有依赖项。这工作得很好。

接下来,我想构建一个 Nuget 包,以便我的中间件可以在内部由多个 ASP.NET Core Web 服务共享。所以我创建了一个类库并添加了中间件代码。我安装了各种 ASP.NET Core Nuget 包和我的专有 Nuget 包来解决依赖关系并构建了 Nuget 包。我成功地将它安装在 ASP.NET Core 应用程序中。

问题

当我尝试运行中间件时,我得到以下信息:Could not load file or assembly 'System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

ASP.NET Core 应用程序似乎使用System.Net.Http 4.0.0

尝试 1

自然,我查看了类库的System.Net.Http依赖关系。它被拉到一个 Nuget 包中,适当地命名为System.Net.Http. 我成功地将该包安装到 ASP.NET Core 应用程序(或者它告诉我的)。我运行了该应用程序,但中间件因同样的错误而失败。很困惑,我回去查看了 Nuget 包。 System.Net.Http失踪!我再次“成功”地安装了它,但再次搜索包显示它没有安装。

我禁用了自动包恢复,我清除了 Nuget 缓存,然后重试。没运气。该软件包认为它已成功安装,但它从未真正起作用。

以下是 ASP.NET Core 应用的 project.json 的相关部分:

尝试 2

我突然想到我可能错误地设置了类库。于是我去https://github.com/aspnet/Security复制了他们中间件的项目结构。我再次安装了我的依赖项(一个小得多的列表!),它构建成功。我再次构建了一个 Nuget 包并将其安装到 ASP.NET Core 应用程序中。但是,我再次遇到关于版本 4.1.1.0 的相同错误。

这是新类库的project.json:

完全没有参考System.Net.Http

如果您对该专有库感到好奇,这里是参考树。所有空白的东西都是专有的 DLL。所以我在那里也看不到任何System.Net.Http参考。我不是说它不存在,但我看不到它。即使它存在,为什么该专有库可以直接嵌入到 ASP.NET Core 应用程序中正常工作?

专有库依赖树

概括

我无法弄清楚System.Net.Http 4.1.1.0引用的位置,也无法让 ASP.NET Core 更新以使用比4.0.0.0. 但是,如果我将代码粘贴并直接在 ASP.NET Core 应用程序中下载依赖项,则一切正常。

有任何想法吗?

更新

看起来问题出在Microsoft.AspNetCore.AuthenticationNuget 包上。每次安装时,它都会破坏新版本的System.Net.Http. 关于如何防止这种情况的任何想法?

0 投票
1 回答
823 浏览

asp.net-core - 在 ASP.NET Core 中,CacheItemPriority 设置为 NeverRemove 是否真的做到了?

在以前的 asp.net 版本中,NeverRemove 只是对缓存引擎的强烈推荐。如果没有足够的系统内存,无论如何都会被删除。这是 ASP.NET Core 中的情况吗?在文档中它说 NeverRemove 应该用于测试,因为缓存永远不会被删除。

这是真的?我在 repo 中找不到这个的源代码。

0 投票
1 回答
359 浏览

c# - 从 ASP.NET 4 迁移到 .NET CORE 1.1

我正在从 ASP.NET 4/Webforms 迁移到 ASP.NET Core/MVC。我是 MVC 的新手,但理解这个概念。但是,我在处理 ASP.NET Core 时遇到了一个问题。我有几个问题。

在我的遗留(ASPNET4)项目中,我编写了一个“帮助”库,为我的 Web 项目提供基本功能: - 数据库处理(连接、清理、错误捕获、缓存、分页、绑定等)

  • 其他功能(视图状态压缩、日期/时间功能等)

  • 存储管理(会话、cookie 等)

  • 插件(推特、脸书、谷歌集成)

  • 身份管理(与其他系统一起使用的自定义身份)

  • 我认为你说对了...

多年来,我在不断更新和修复错误的同时开发了这个框架。它变得非常快速和稳定——它甚至可以处理任何你想扔给它的数据库!

在研究过程中,我发现 .NET Core 让我很难完成相同的任务。首先,CORE 似乎只支持对象关系映射器(实体、dapper 等)。我对 ADO.NET 非常满意,并且了解其中的差异。我只是真的不想使用实体框架或 Dapper。我可以从 .NET Framework 迁移我的大部分代码。但看起来 .NET Core 并不完全支持 ADO.NET。是这样吗?

我的下一个问题出现在数据库支持之后。我发现很难从类库中管理会话/cookies/等。也许我误解了这些概念,或者没有找到合适的文档,但似乎几乎不可能在外部库中管理 Session/Cache/etc。是这样吗?还是我需要研究创建自定义中间件?

基本上,我需要从库中完全访问网站,这样我就可以使用自己的代码来处理会话、数据管理等事情。

MVC 是 ASP.NET 唯一可用的选项吗?

最后,似乎 Visual Studio 2015 在处理 .NET Core 应用程序时非常有问题且速度很慢。这对我来说是一个主要的关闭,从界面到 NuGet 的一切似乎都很慢而且有故障。

非常感谢任何关于我应该去哪里或从 .NET 核心开始的建议或建议,我花了数周时间阅读文档和试验,但没有取得真正的进展。我真的很想远离网络表单!

0 投票
1 回答
11811 浏览

c# - 在 ASP.Net Core MVC 中读取 JSON 发布数据

我试图为此找到解决方案,但所有即将出现的解决方案都是针对以前版本的 ASP.Net。

我正在使用 JWT 身份验证中间件并具有以下方法:

这会像获取表单数据一样获取发送的数据,但我的 Angular 2 前端将数据作为 JSON 发送。

我首选的解决方案是将其作为 JSON 发送,但我未能成功检索数据。我知道它正在发送,因为我可以在 fiddler 中看到它,如果我使用 Postman 并且只发送表单数据,它就可以正常工作。

基本上我只需要弄清楚如何改变这一行来读取 json 数据

0 投票
5 回答
26705 浏览

c# - asp.net core defaultProxy

在 net 4.5 中,我们正在使用这样的代理:

但是在 asp.net 核心或测试中,我们找不到像上面这样的解决方案有人可以帮我吗?

我真的很感谢你的帮助

感谢和问候

0 投票
4 回答
24440 浏览

asp.net - 借助 SharedResources 实现 ASP.NET Core 本地化

您好我有一个关于 SharedResources 文件的问题。在这里的教程中浏览了它:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization,我不确定我是否正确理解。

我应该创建一个SharedResources.cs类,但是我应该把它放在哪里,它应该是空的还是我需要用一些数据填充它?

资源文件也是如此,我应该创建一个SharedResources.da.resx文件并将所有共享字符串放在那里吗?它应该去哪里?

当我使用时,我IHtmlLocalizer<SharedResources>是否只需编写@using并将其指向SharedResources.cs所在的名称空间?

我尝试将SharedResources.csandSharedResources.da.resx放入 Resources 文件夹并使用它将网站语言更改为丹麦语,但它不起作用。使用专用的资源文件Index.da.resxIViewLocalizer工作正常,但IHtmlLocalizer<SharedResources>似乎不起作用。

当我查看链接到页面底部的示例项目时,我没有找到任何使用 SharedResources 的地方,如果有人用这样的示例更新它会很棒。

这是我尝试这样做的方法:

视图/主页/Index.cshtml:

在 Startup.cs 的 ConfigureServices 顶部:

在 Startup.cs 的配置顶部:

Resources 文件夹包含名为的空类Shared.csShared.da.resx其中包含共享字符串。我是否可能需要将其名称更改为SharedResources.csand SharedResources.da.resx

0 投票
1 回答
295 浏览

c# - 用于 ASP.NET 核心安全调试的 pdb

据我所知,为了调试和为参考库制作断点,pdb 文件是必需的。

我想用asp.net core security nuget 包来做,但 pdb 似乎没有提供。

我怎样才能做到?

0 投票
1 回答
138 浏览

asp.net-core - UrlRewrite 中间件和客户端应用程序

我什至不确定 url 重写是否适合我的用例,但我觉得它可能(使用Microsoft.AspNetCore.Rewrite)。我有一个由我的 ASP.NET Core 项目使用 UseStaticFiles() 服务的客户端。同样的项目还在default我的启动配置方法中使用带有路由的 MVC,如下所示:

我的客户端应用程序执行了一个带外调用,该调用接收来自另一个服务的回调,并且此回调包含一个 url/hash 片段,以便客户端应用程序可以处理 url/hash 片段中的任何内容。可以说此服务以/callback#foo='bar'.

只是更多的上下文,正在发生的事情是我的客户端应用程序正在从 openid-connect 提供程序进行登录,并且在登录时,发生的情况是您被定向到提供程序,该提供程序使用令牌将您重定向回您的应用程序散列片段(成功登录时),所以当我的 ASP.NET Core 应用程序收到请求时,callback#foo=bar我希望它wwwroot使用散列片段为我的静态应用程序提供服务,以便我的客户端应用程序可以使用散列片段(这是令牌由提供者返回)