问题标签 [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.
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() 是否以某种方式被加载到其他地方?如果没有,如果没有添加服务,为什么缓存似乎可以工作?
.net - JwtBearerMiddleware 的自定义令牌位置
我们有一个调用客户端请求我们的系统,它没有将承载令牌放在标准位置(“授权”标头)我想创建一个自定义处理程序,在正确的位置查找 JWT。除了分叉JwtBearerMiddleware
实现之外,还有什么更简洁的方法可以告诉中间件使用什么处理程序?
更简单的选择是通过在 JWT 中间件运行之前将 JWT 注入到请求管道中的正确位置(请求标头)来重写请求。但这似乎有点骇人听闻。
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.Authentication
Nuget 包上。每次安装时,它都会破坏新版本的System.Net.Http
. 关于如何防止这种情况的任何想法?
asp.net-core - 在 ASP.NET Core 中,CacheItemPriority 设置为 NeverRemove 是否真的做到了?
在以前的 asp.net 版本中,NeverRemove 只是对缓存引擎的强烈推荐。如果没有足够的系统内存,无论如何都会被删除。这是 ASP.NET Core 中的情况吗?在文档中它说 NeverRemove 应该用于测试,因为缓存永远不会被删除。
这是真的?我在 repo 中找不到这个的源代码。
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 核心开始的建议或建议,我花了数周时间阅读文档和试验,但没有取得真正的进展。我真的很想远离网络表单!
c# - 在 ASP.Net Core MVC 中读取 JSON 发布数据
我试图为此找到解决方案,但所有即将出现的解决方案都是针对以前版本的 ASP.Net。
我正在使用 JWT 身份验证中间件并具有以下方法:
这会像获取表单数据一样获取发送的数据,但我的 Angular 2 前端将数据作为 JSON 发送。
我首选的解决方案是将其作为 JSON 发送,但我未能成功检索数据。我知道它正在发送,因为我可以在 fiddler 中看到它,如果我使用 Postman 并且只发送表单数据,它就可以正常工作。
基本上我只需要弄清楚如何改变这一行来读取 json 数据
c# - asp.net core defaultProxy
在 net 4.5 中,我们正在使用这样的代理:
但是在 asp.net 核心或测试中,我们找不到像上面这样的解决方案有人可以帮我吗?
我真的很感谢你的帮助
感谢和问候
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.cs
andSharedResources.da.resx
放入 Resources 文件夹并使用它将网站语言更改为丹麦语,但它不起作用。使用专用的资源文件Index.da.resx
和IViewLocalizer
工作正常,但IHtmlLocalizer<SharedResources>
似乎不起作用。
当我查看链接到页面底部的示例项目时,我没有找到任何使用 SharedResources 的地方,如果有人用这样的示例更新它会很棒。
这是我尝试这样做的方法:
视图/主页/Index.cshtml:
在 Startup.cs 的 ConfigureServices 顶部:
在 Startup.cs 的配置顶部:
Resources 文件夹包含名为的空类Shared.cs
,Shared.da.resx
其中包含共享字符串。我是否可能需要将其名称更改为SharedResources.cs
and SharedResources.da.resx
?
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
使用散列片段为我的静态应用程序提供服务,以便我的客户端应用程序可以使用散列片段(这是令牌由提供者返回)