Tag: machinekey

ASP网站似乎没有在Forms.Config中使用machineKey进行FormsAuthentication.Decrypt

我想从我的ASP.Net MVC 5(.Net 4.5.1,本地托管在iisexpress上,从Visual Studio运行)传递身份validationcookie到我的WCF服务(.Net 4.5.1,本地托管在WcfSvcHost上,从同一个端口运行) Visual Studio解决方案)并在那里解密。 我已将两者配置为使用相同的machinekey(用于ASP的Web.config,用于WCF的App.config): 两者都引用相同的System.Web.dll: C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.1 \ System.Web.dll(v4.0.30319) 但是当我尝试将cookieString传递给我的服务并调用时 FormsAuthenticationTicket tick = FormsAuthentication.Decrypt(cookieString); 我收到以下错误: 无法validation数据 我反过来尝试了(在WCF服务上生成假票并在ASP网站上解密),这也没有用。 我可以在ASP网站上生成一张票并在那里解密就好了。 我也可以在服务上生成一张票,并在那里解密它没有任何问题。 var t1 = new FormsAuthenticationTicket(“foo”, false, 1337); var cookie = FormsAuthentication.Encrypt(t1); var t2 = FormsAuthentication.Decrypt(cookie); 我还制作了一个小型控制台应用程序,在那里创建了一个票证并在WCF服务上解密它没有任何问题。 因此,似乎ASP网站不使用指定的密钥来加密或解密数据。 有谁知道我能做些什么来解决这个问题? 编辑:我按照本指南获取cookie并将其传递给我的服务。 http://thoughtorientedarchitecture.blogspot.de/2009/10/flowing-aspnet-forms-authentication.html 然而,正如我所说,我试图复制加密cookie的值,并在一个简单的控制台应用程序中使用相同的机器密码解密它,它不起作用。

获取HMAC的当前MachineKey或等效值(在Web场中)

我正在使用HMACSHA256在Web场环境中进行消息身份validation。 在web-farm中,每台机器都有相同的机器密钥,因此ViewState可以跨机器工作,但是,我需要进行跨机器的HMAC消息认证,所以我认为由于所有机器都使用相同的机器密钥,因此应该是一种从中导出密钥以用作HMAC密钥的方法。 我注意到在.NET 4.0中有MachineKey类,但是,我仍然坚持使用.NET 3.5 ,这对我来说是不可用的。 有没有办法在不生成自己的机器的情况下获得在所有机器上都相同的排序键,以便在ASP.NET 3.5环境中使用? 编辑 我实际上并不需要机器密钥本身,只需要从机器密钥(或等效的)派生的validation密钥。

用于ASP.NET中的MachineKey

机器密钥在asp.net中有哪些不同的用途? 我认为以下是正确的,但认为可能还有更多。 多个应用程序可以使用相同的cookie 多个服务器可以使用相同的视图状态