Microsoft CryptoAPI 提供了一个标准的框架,应用程序可用此框架来获得加密服务和数字证书服务。除了 CryptoAPI 为 Windows 95、Windows 98、Windows NT 和 Windows 2000 提供的标准服务以外,第三方供应商可开发并销售他们自己的插件模块,提供附加的加密服务。 在 Windows 网络中,为新证书生成一个请求时,该请求中的信息首先被从请求程序传递给 CryptoAPI。然后,CryptoAPI 把相应的数据传递给一个称为加密服务提供程序 (CSP)的程序,该程序安装在您的计算机上,或安装在您的计算机可以访问的某种设备(如智能卡)上。CSP 是一个执行诸如机密密钥交换、数据的数字签名以及公钥身份验证之类的加密操作的独立软件模块。 

解决方案 »

  1.   

    正确的安装是,先安装IIS,然后安装.NET FrameWork,
    否则,就会出现一些问题。
      

  2.   

    你用的是 v1.1.3705,在这个版本之下,不支持在ASPNET中应用加密算法(原因好象是,在这个版本中,ASPNET的Privilege 不够).所以,你会有这个错误.你这个版本的.NET Framework应该是由 VS.NET 2002所带的版本.
    你应该将其升级为 VS.NET 2003自带的版本,版本号为v1.1.4322.
    在该版本的 Framework中,aspnet就可以访问加密接口了.祝你好运.
      

  3.   

    如果先安装IIS,就是会出现问题,重新安装吧。
      

  4.   

    你的.NET Framework版本有问题.
    在v1.1.3705版本(VS.NET 2002 自带的这个版本)下,aspnet帐户(就是 ASP.NET程序运行时使用的帐户)是没有特权访问加密服务的.
    建议你升级为v1.1.4322(VS.NET 2003会带这个版本的),在这个版本下,你是可以访问加密服务的.我曾经在应用中碰到与你同样的问题,升级之后,就不会有这样的问题出现.另外还有一个办法,就是提高你的ASP.NET帐户的特权等级,不过,这个办法我没有试过.上面的建议是我的实践中验证过的.
      

  5.   

    这个问题,与你是与你如何安装IIS关系,顺便说一句,如果你是先安装Framework,后安装IIS,你可以在
    C:\WINDOWS\Microsoft.NET\Framework\[你的版本号]\
    目录下,找到aspnet_regiis.exe,
    使用此命令行工具,你可以将你的.netframework 注册到 iis 中去,与先安装iis的效果就一样了.
      

  6.   

    引用自微软《使用 .NET Framework 的 Cryptography 命名空间保护私有数据》
       
      “如果您的操作系统是出口版本,.NET Framework 仍然不会为非托管实现使用增强加密。为了规避这种情况,您可以安装 High Encryption Pack。Windows 2000 的 Service Pack 2 中包括了 High Encryption Pack,您可以从 Windows 2000 High Encryption Pack 中获得这个 Service Pack。    对于 Windows NT® 4.0,Service Pack 以标准和高加密两种版本发行。如果您还没有安装任一版本,请下载 Service Pack 6a 的高加密版。    对于 Windows ME、Windows 98 和 Windows 95,Microsoft Internet Explorer 5.5 中包括了 High Encryption Pack。如果您运行的 Internet Explorer 版本低于 5.5,可以获得相应的 High Encryption Pack。”更多信息参考http://www.microsoft.com/china/msdn/msdnmag/issues/02/06/crypto/crypto.asp