VS2012的Web.config中使用machineKey

在VS2012中新建项目,Web.config中使用machineKey,总是报错:

“验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的validationKey 和验证算法。不能在群集中使用 AutoGenerate。”

后来从网上查找原因,发现是升级至ASP.NET 4.5后导致的。

ASP.NET 4.5的默认设置是:

<machineKey compatibilityMode="Framework45" />

ASP.NET 4.5对表单验证的加/解密算法进行了改进,如果不是同时将所有ASP.NET应用程序升级至ASP.NET 4.5,为了保持表单验证的兼容性,需要修改compatibilityMode的设置。

<machineKey compatibilityMode="Framework20SP1"/>

<machineKey compatibilityMode="Framework20SP2"/>

修改web.config如下:

<machineKey validationKey="6799A837225DBC4C740C4BDF5B369C7C7BF7DF5EAF09AF82EC225EE1DE94A6E97B2A0FD9759BE504E90D1EDF05D4891F0EDF9D3B01A433F642407C18A25764B7" decryptionKey="6980FD19A2C05E2FF0B5634EDF0BE2C4C4C880F0126739C9" decryption="3DES" validation="SHA1" compatibilityMode="Framework20SP2"/>

一切OK!

时间: 2024-08-01 15:33:06

VS2012的Web.config中使用machineKey的相关文章

c#引用web.config中的ConnectionString

c#引用web.config中的ConnectionString <connectionStrings>  <add name="JKXTConnectionString" connectionString="Data Source=CHF;Initial Catalog=JKXT;User ID=sa" providerName="System.Data.SqlClient" />  <add name="

加密web.config中的邮件配置mailSettings

加密: 在命令提示符下键入: aspnet_regiis -pef connectionStrings 要加密的web.config完整路经 演示样例:C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>aspnet_regiis -pef "connectionStrings" "D:\Scode\cpb2cNew\branches\trunk\src\client\CP.Client" 解密: 在命

利用ASP.NET加密和解密Web.config中连接字符串

介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Server, Ajax, JavaScript等的文章.大多数情况下,我都把数据库的连接字符串放在了web.config中.其中包含许多敏感信息,包括连接数据库的用户名密码等.然而我们在web.config和machine.config中以纯文本的方式保存密码安全吗? 如果我们的程序只是部署在内部服务器中,这应该没

WCF项目问题2-无法激活服务,因为它需要 ASP.NET 兼容性。没有未此应用程序启用 ASP.NET 兼容性。请在 web.config 中启用 ASP.NET 兼容性,或将 AspNetCompatibilityRequirementsAttribute.AspNetCompatibilityRequirementsMode 属性设置为 Required 以外的值。

无法激活服务,因为它需要 ASP.NET 兼容性.没有未此应用程序启用 ASP.NET 兼容性.请在 web.config 中启用 ASP.NET 兼容性,或将 AspNetCompatibilityRequirementsAttribute.AspNetCompatibilityRequirementsMode 属性设置为 Required 以外的值. 在web.config中添加 aspNetCompatibilityEnabled="true"属性即可,如下: <servi

web.config中sessionState节点的配置方案

web.config中sessionState节点的配置方案 web.config关于sessionState节点的配置方案,sessionState有五种模式:Custom,off,inProc,StateServer,SqlServer. 1.Custom模式  会话状态将使用自定义数据存储区来存储会话状态信息. 2.off模式 从字面上就可以看出这个是关闭模式,如果当前页面不需要session的值,为了减少服务器资源,你可以去掉Session的开销. <sessionState mode=

ASP.NET web.config中的连接字符串

在ASP.NET的web.config中,可以用两种方式来写连接字符串的配置. 1 <configuration> 2 <appSettings> 3 <add key="connstr1" value="Data Source=.;Initial Catalog=DBName;Integrated Security=true"/> 4 <add key="connstr2" value="..

因为此控件已在 web.config 中注册并且与该页位于同一个目录中

在web.config文件配置了用户控件 <pages> <controls> <add tagPrefix="my" tagName="login" src="~/login.ascx" /> </controls> </pages> 然后在aspx页面引用该控件 <my:login runat="sever" id="myLogin" /

asp.net Web.config中assembly注册程序集的目的

asp.net的Web.config中用assembly注册程序集 asp.net的Web.config中用assembly注册程序集的目的是什么? .net framewok2.0 提供了表示Framework的各个部件的大量程序集.这些程序集存储在全局程序集缓存中,该缓存是程序集的版本化存储库,可供计算机上的所有应用程序使用(而不像Bin和App_Code目录仅限于特定的应用程序).Framework中的多个程序集都可自动提供给Asp.net应用程序.通过在应用程序的Web.config文件

web.config中配置数据库(多数据)连接的两种方式

这是我的第一篇文章,既然是第一篇了,那就从最基础的只是说起--web.config中配置数据库连接. 网上有很多这方面的资料,但发现并没有一篇从头到位很清楚明了说完的,今天就把我的整理写在这里吧. 在网站开发中,数据库操作是经常要用到的操作,ASP.NET中一般做法是在web.config中配置数据库连接代码,然后在程序中调用数据库连接代码,这样做的好处就是当数据库连接代码需要改变的时候,我们只要修改web.config中的数据库连接代码即可,而不必在修改每一个页面中的数据库连接代码. 在ASP