- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最近我在公司开发了一个 asp.net core 2.0 Web 应用程序,在 Debug模式下工作得很好,但是当我将测试服务器部署到 IIS 中并尝试从客户端计算机执行时,它遇到了问题:
An unhandled exception occurred while processing the request.
CryptographicException: The key {0851ad3b-df33-4cf7-8c3a-5c637adaa713} was not found in the key ring.
Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.UnprotectCore(Byte[] protectedData, bool allowOperationsOnRevokedKeys, out UnprotectStatus status)
InvalidOperationException: The antiforgery token could not be decrypted.
Microsoft.AspNetCore.Antiforgery.Internal.DefaultAntiforgeryTokenSerializer.Deserialize(string serializedToken)
当我提交登录页面时,问题就开始了。我调查了此处和其他博客中存在相同问题的链接,但我发现必须使用 ValidateAntiForgeryToken 并且解决方案与 Microsoft.AspNetCore.DataProtection 相关。我将nuget包Microsoft.AspNetCore.DataProtection.Redis添加到我的项目中,并在启动类的ConfigureServices中添加以下代码:
var redis = ConnectionMultiplexer.Connect("192.168.10.151:80");
services.AddDataProtection().PersistKeysToRedis(redis, "DataProtection-Keys");
services.AddOptions();
我们的测试服务器IP是192.168.10.151,但是应用程序抛出以下异常:
RedisConnectionException: It was not possible to connect to the redis server(s); to create a disconnected multiplexer, disable AbortOnConnectFail. InternalFailure on PING
¿为什么无法连接,因为是在同一个 Web 应用程序服务器中解析的?¿DataProtection-Keys 数据库位于哪里?
作为解决方法,我使用 PersistKeysToFileSystem 更改了方法,如下所示:
services.AddDataProtection()
.SetApplicationName("myapp-portal")
.PersistKeysToFileSystem(new System.IO.DirectoryInfo (@"c:\ProgramData\dpkeys"));
但是,在测试服务器 192.168.10.151 中运行应用程序,提交登录表单后,将返回登录页面。检查标准输出日志文件,仅显示:
托管环境:生产内容根路径:C:\inetpub\wwwroot\OmniPays现在收听:http://localhost:30064申请开始了。按 Ctrl+C 关闭。
通过 Chrome 的开发者工具检查网络消息我注意到了一些事情:
请求网址:http://192.168.10.151/OmniPays/Account/Login请求方式:POST状态代码:302 已找到远程地址:192.168.10.151:80推荐人政策:降级时无推荐人
然后...
请求网址:http://192.168.10.151/OmniPays/Home/Main请求方式:GET状态代码:302 已找到远程地址:192.168.10.151:80推荐人政策:降级时无推荐人
仅当身份验证成功时,AccountController 的登录操作才会将请求重定向到 HomeController 的主操作,并且主操作具有 [Authorize] 属性。由于某些原因我无法理解,主要操作失败并返回到登录页面。 Chrome 中的 URL 显示:http://192.168.10.151/OmniPays/Account/Login?ReturnUrl=%2FOmniPays%2FHome%2FMain
我正在使用 Microsoft 身份。在 Debug模式下工作正常,如果我在 IIS 上的本地 PC 上部署应用程序也工作正常。 ¿也许服务器中缺少任何 SDK?
请需要帮助!!
最佳答案
找到解决方案了!问题的原因不在 IIS 中,也不是在服务器中,与服务器的连接使用的是 http 而不是 https,没有涉及验证安全连接的证书,但是在不同服务器应用程序中进行测试工作正常,所以我感到非常失望。解决方案是在所有浏览器中删除 cookie 以及与此 URL 相关的任何指向开发服务器(失败)的数据、之前存储的数据,瞧!!,现在应用程序完美运行。默认情况下,由于 bhmahler 评论数据保护是在内存中进行的,并且我默认保留配置,我的意思是,没有明确地持久化在 redis 中,也没有 PersistKeysToFileSystem 并且工作正常,但是将 DataProtection 设置为强大的数据敏感保护很重要。
我是这些主题的新手,令人难以置信的是,如此简单的事情对我造成了浪费时间。感谢大家!.
关于c# - asp.net core 2.0 部署 - InvalidOperationException : The antiforgery token could not be decrypted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50632347/
主要思想是将 EF Core nuget 包添加到 .NET Core 库项目,然后在一堆应用程序(例如 ASP.NET Core、Win 服务、控制台应用程序)中使用该库,而无需在每个应用程序中配置
我想要实现的是编写一个简单的.net核心后台工作程序(.net core 3.1)的代码,在该工作程序作为Windows服务运行时,我在其中将数据写入SQL Server数据库(通过EF Core 3
关于 .Net Core SDK download page 二进制文件有什么用?它与安装程序有何不同? 最佳答案 二进制文件是 .NET Core 的编译代码。它们拥有运行 .NET Core 所需
.NET Core 和 Entity Framework Core 之间的区别?我们可以在 .NET Core 中使用 Entity Framework Core 吗?两者都有什么优势? 最佳答案 E
.NET Core 和 ASP.NET Core 到底有什么区别? 它们是相互排斥的吗?我听说 ASP.NET Core 是基于 .NET Core 构建的,但它也可以基于完整的 .NET 框架构建。
我对 ASP.NET Core 开发完全陌生。我正在尝试使用单个模型和 mysql 创建一个简单的 asp.net core Web api 来存储模型数据,然后我想使用 Swagger 将其作为 R
.NET Core 和 Entity Framework Core 之间的区别?我们可以在 .NET Core 中使用 Entity Framework Core 吗?两者都有什么优势? 最佳答案 E
好吧,作为一个新的 .net 开发生态系统,我有点迷失在核心工具、版本等方面。 有人可以解释我之间的区别吗 VS 2015 核心工具预览版 x - See here .NET Core/SDK 与否
我已阅读有关如何通过信号器核心集线器从后台服务向客户端发送通知的文档。如何从客户端接收到后台服务的通知? 后台服务应该只是一个单例。 public class Startup { public
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 4年前关闭。 Improve t
非常简单的问题: 我正在尝试创建一个像这样的谓词构建器: var predicate = PredicateBuilder.False(); 但似乎在Net Core和EF Core中不可用。
在 .NET Core 自包含应用程序 中...我们需要在 project.json 中指定运行时 (RID) 我们希望我们的应用程序针对...发布为什么会这样? .NET Core 是跨平台的,与我
如何用 iCloud Core Data 替换我现有的 Core Data?这是我的持久商店协调员: lazy var persistentStoreCoordinator: NSPersistent
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 2 年前。 Improv
今天我正在学习新的 ASP.net 核心 API 3.1,我想将我的旧网站从 MVC4 转移到 Web API。除了一件事,一切都很好。数据库连接。在我的旧网站中,我为每个客户端(10/15 数据库)
我在 Visual Studio 2015 Update 3 和 .NET Core 1.0 中工作。我有一个 .NETCoreApp v1.0 类型的 Web API 项目。当我添加一个 .NET
我一直在尝试遵循 Ben Cull ( http://benjii.me/2016/06/entity-framework-core-migrations-for-class-library-proj
当我打开我的 vs 代码程序时,我收到以下消息: 无法找到 .NET Core SDK。 .NET Core 调试将不会启用。确保 .NET Core SDK 已安装并且在路径上。 如果我安装甚至卸载
我偶然发现了一个非常奇怪的问题。每当 Web 应用程序启动时,dotnet.exe 都会使用相当多的内存(大约 300M)。然而,当它触及某些部分时(我感觉这与 EF Core 使用有关),它会在短时
ASP.NET Core Web (.NET Core) 与 ASP.NET Core Web (.NET Framework) 有什么区别? .NET Framework 是否提供 similar
我是一名优秀的程序员,十分优秀!