问题标签 [machinekey]
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 - 验证视图状态 MAC 失败错误。
我用一些 ASPX-C# 页面构建了一个网站,我添加了一个带有表单的新页面。问题是当我单击提交时,我收到以下错误:
视图状态 MAC 验证失败。如果此应用程序由 Web Farm 或集群托管,请确保配置指定相同的 validationKey 和验证算法。AutoGenerate 不能在集群中使用。
所有其他页面中的表单都可以正常工作,但是在此特定页面中提交后 - 表单无法正常工作,并且所有表单都出现此错误。我试图在网上搜索解决方案,但我找到的解决方案似乎不起作用。:(
更新 我把这段代码放在网页配置页面中,问题解决了:
但是PostBack 命令现在不能正常工作。
我的问题是为什么,我该如何解决?
请帮助我,我必须尽快解决这个问题。
asp.net - Web-farm 中的 Viewstate 验证失败 - 消除了通常的嫌疑人
我认为我已经尝试了对这个问题的所有标准响应,并且我知道我已经阅读了数百个关于这个问题的问题和帖子,但他们似乎都没有解决它或阐明原因在我的场景中。(我已经下降了 5 个小时,而且没有更近的时间了 :-( )
我有一个由 2 台服务器组成的网络农场。
我已经在两台机器上的 machine.config 中设置了机器密钥和验证密钥
加密:SHA1,解密:AES - 这些是默认值,可以更改它们吗?
我已验证链中没有其他配置文件(web.cfg、apphost 等)具有这些值的设置。
我已经向站点添加了一个页面(基于此 SO),该页面将机器键值吐回,并验证它们在对两台机器的请求中是相同的,并且与机器 .config 中的值匹配
服务器端会话状态处于共享状态服务器,我已经验证 sessionid 在对 2 个服务器的请求之间保持不变。
我已验证页面已完全加载,并且 __EVENTVALIDATION 隐藏字段已在开始发布之前呈现到页面中。视图状态大小在 7.64kb 时还不错
当页面从对服务器 1 的请求呈现,然后再发回服务器 2 时,我会感到害怕......
帖子是由一个标准的、纯粹的 asp 链接按钮触发的,页面上没有 ajax。
任何和所有的帮助将不胜感激。
设置 enableViewStateMAC = false 不是解决方案:-)
asp.net - 子域中的 MachineKey 关系。可以跨服务器吗?
在这个例子中,我有几个站点。
上述每个站点都具有相同的相同点machinekey
。此示例 a.site.com 和 b.site.com 也存在于服务器 1 上,而 c.site.com 存在于服务器 2 上。
使用表单身份验证,我可以毫无问题地在 a.site.com 和 b.site.com 之间导航,只需验证一次。但是,即使 c.site.com 具有相同的内容,machinekey
我也无法导航到 c.site.com 并保持登录状态。
我可以使用域 cookie 来解决这个问题。但这不是理想的解决方案,原因有很多。
如何在没有域 cookie 的情况下跨服务器使用机器密钥?
它们在同一个域中。这些站点也是完全相同的代码,只是多个 IIS 页面。唯一的区别是站点位于不同的服务器上
谢谢!
编辑 web.config
我的意思是我去发布 a.site.com - server1 : publsh b.site.com -server1 : publish - c.site.com server2 代码没有变化。是的,我删除了密钥,但我确信密钥已正确创建。
encryption - 使用 3DES 验证机器密钥
使用 3DES 验证的验证密钥和解密密钥时,我在以下机器密钥上收到错误。当我删除两者时它可以工作。使用 3DES 时最好的方法是什么?
asp.net - 自动生成机器密钥 VS。自定义机器密钥
我们在服务器上进行了负载平衡,如您所知,我们收到 Mac 失败错误,经过一番搜索,我们发现在所有服务器中使用自定义机器密钥而不是自动生成配置,
所以问题是有什么区别?
当我们使用自定义(修复)机器密钥时是否存在任何安全风险?
asp.net-mvc - 在 Asp.net MVC 应用程序中使用 SSL 而不是验证密钥的差异
对于每个 Asp.net MVC 应用程序,我们使用静态或动态密钥来验证用户请求/响应,例如在 web.config 文件中,由于具有静态验证,我们可能会使用它:
另一方面,我们有一个名为 SSL(安全套接字层)的工具来升级 Web 应用程序的安全性。SSL 也有不可否认机制。
考虑到这一点,我的问题是:
它们之间存在哪些差异?什么类型的工作与他们相关?每个将保护 App 的哪一部分?换句话说:我们能否通过使用 MVC ValidationKey 而不是 SSL 对我们的应用程序充满信心?
令我困惑的概念是:它们同时具有 Encryption/Decryption。
c# - ASP.NET 机器键在代码中设置键
对于 IIS 托管的 ASP.NET MVC 4 网站,我想在运行时在代码中动态调整机器密钥。
机器密钥、加密和验证密钥以及要使用的算法都存储在数据库中。我不想从文件中读取值web.config
,而是想在应用程序启动期间注入这些值并让系统使用这些值。
有什么方法可以实现这一点而无需进行任何更改web.config
(仅更改内存配置)?
我已经尝试访问配置部分,但它被标记为只读并且也是密封的,所以我无法覆盖IsReadOnly()
. 但是,setter
对我来说,有一个指标表明可能有一种方法可以删除只读标志。
有没有办法做到这一点?我能看到的唯一选择是使用像 AppHarbor 这样的自定义方法,但是如果可能的话,我宁愿坚持使用内置方法。
如果有人问我为什么要这样做,原因是,这是针对在 webfarm 中运行的大量相同网站。因此,必须拥有非自动生成的密钥(必须在每台服务器上相同)。此外,每个网站都应该被隔离,并且不应该共享相同的密钥。由于所有网站在物理表示上都是相同的,因此它们共享相同的物理位置。这就是 web.config 文件不能包含应用程序特定设置的原因。
编辑:如果根本不可能,至少确认一下会很有帮助。如前所述,可以使用自定义身份验证和加密方法,这将完全避免使用机器密钥设置。谢谢。
azure - 使用 Azure 自动缩放是否需要在 web.config 中指定 MachineKey?
对于我最近处理的一个 ASP.NET MVC 项目,它被部署到多个服务器实例,并且需要配置一个机器密钥。
我有另一个项目将部署到 Azure(网站标准)上,我不确定 Azure 是否为您配置机器密钥或在内部自行处理此类事情,或者您是否必须配置一个。
有人知道吗。我似乎找不到任何专门关于此的资源。
iis - 为了设置网站的机器密钥,如何在 C# 中使用 HMACSHA256 生成加密密钥
我尝试生成机器密钥来手动更新 web.config,但我需要 powershell 脚本来做同样的事情。谁可以帮我这个事?
c# - 机器密钥设置为 SHA1 时无法验证数据错误
我有一个使用 IIS 7.5 中的 .NET 2.0 运行时的简单 .net 应用程序,其中我已将 web.config 中的机器密钥更改为使用以下内容:
这在本地工作正常,但是当我发布到服务器时,每当浏览网站时都会收到“HttpException(0x80004005):无法验证数据”。我确保设置编译调试 =“假”。将验证方法设置为 3DES 可消除此问题,但我们需要使用 SHA1。我在这里缺少一些配置选项吗?请参阅下面的堆栈跟踪。