Asp.net mvc 4 子操作输出缓存是否与FIPS不兼容?

Asp.net mvc 4 子操作输出缓存是否与FIPS不兼容?,asp.net-mvc-4,.net-4.5,outputcache,fips,Asp.net Mvc 4,.net 4.5,Outputcache,Fips,我正在尝试使我的ASP.NETMVC4应用程序与FIPS兼容。幸运的是,对于.NET 4.5,ASP.NET已经在使用FIPS批准的AES viewstate和cookie加密实现,所以这一点没有问题 然而,我遇到了一个奇怪的问题。这可以通过非常简约的ASP.NET MVC应用程序复制 创建简单控制器: public class HomeController : Controller { public ActionResult Index() { return

我正在尝试使我的ASP.NETMVC4应用程序与FIPS兼容。幸运的是,对于.NET 4.5,ASP.NET已经在使用FIPS批准的AES viewstate和cookie加密实现,所以这一点没有问题

然而,我遇到了一个奇怪的问题。这可以通过非常简约的ASP.NET MVC应用程序复制

创建简单控制器:

public class HomeController : Controller
{

    public ActionResult Index()
    {
        return View();
    }

    [OutputCache(Duration =  5)]
    public ActionResult Data()
    {
        return View();
    }

}
为索引创建非常简单的视图:

<h2>Page</h2>
@Html.Action("Data")
然而,我认识到,和我之前的许多人一样,这个设置对web应用程序没有影响,不管它是托管在IIS还是Cassini中,即使它对同一台机器上的控制台应用程序工作得非常好

切换到triple des的常见ASP.NET 2.0解决方案也没有效果

<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>
毕竟在.NET4.5中,我们已经有FIPS批准的AES用于这些目的

通过registry或group policy tool在整个机器上禁用FIP工作得非常好,但目标当然是在机器级别启用FIP

有什么我可能遗漏的吗?是否可以通过从输出缓存子操作的所有实例中剥离应用程序来使其正常工作?

这与。CLR团队意识到了这一点,并正在考虑解决方案

同时,您可以使用与上面的bug报告相同的解决方法。将以下内容添加到Global.asax中的应用程序_Start:

 CryptoConfig.AddAlgorithm(typeof(SHA256Cng), "System.Security.Cryptography.SHA256");

好极了这很有效-谢谢你-我甚至可能在某个地方看到过信号机的问题,但我认为这是无关的
<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>
 CryptoConfig.AddAlgorithm(typeof(SHA256Cng), "System.Security.Cryptography.SHA256");