首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用数据保护API加密web.config文件后的空引用异常

使用数据保护API加密web.config文件后的空引用异常
EN

Stack Overflow用户
提问于 2013-09-23 16:05:35
回答 1查看 732关注 0票数 1

我对我的web应用程序的appSettings和web.config文件部分进行了加密。

以下是我在Visual 2010命令提示符下输入的两个命令:

代码语言:javascript
复制
aspnet_regiis.exe -pef "connectionStrings" C:\Provider -prov "DataProtectionConfigurationProvider"

aspnet_regiis.exe -pef "appSettings" C:\Provider -prov "DataProtectionConfigurationProvider"

现在,这两个命令与解决方案文件一起在目录中生成了一个新的web.config文件。我打开了这个web.config文件,它只包含原始web.config文件的加密appSettings和connectionStrings部分。

然后我打开了我的web应用程序,删除了原始的appSettings和部分,并粘贴了加密的部分。

我的web.config文件现在是这样的:

代码语言:javascript
复制
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <appSettings configProtectionProvider="DataProtectionConfigurationProvider">
    <EncryptedData>
      <CipherData>
        <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA6h2T0PWsHUC2CPpYvY8QUwQAAAACAAAAAAAQZgAAAAEAACAAAAAdlSIaGrQ1CFjswJi2RxekJ4ZxmRArilsOiqrmUXt6JgAAAAAOgAAAAAIAACAAAACaV/bVjlK60wX9LOFzRsrkbcDjSOT+3Qj0JyUZZszNNSAAAACaQC3oKCPX1gaxZK3ghS6lAMcVwpNpbMpyNpeoiwxap0AAAAD87rr8QUaIQJv2Sc+i+RGWq1+vExAPNjjG1VtWvK4ILsOX88iBRRx0tpAFdNAw0AvGoxUTA7UQGKm7hTHBaAMz</CipherValue>
      </CipherData>
    </EncryptedData>
  </appSettings>
  <connectionStrings configProtectionProvider="DataProtectionConfigurationProvider">
    <EncryptedData>
      <CipherData>
        <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA6h2T0PWsHUC2CPpYvY8QUwQAAAACAAAAAAAQZgAAAAEAACAAAAB4Y7QqEGRvo9T04hE8hvd3wMvRXqIMa/UJBkOQnMnsbgAAAAAOgAAAAAIAACAAAADnzwxmuoWUQLYJ0/YPUkgvR/xyXDZNaQI4ZrMmACqvaTAAAAC6C0nEhW+g8WHcNJLN5DRi8uNimkG3GyMEajrB33ST7DN49W925xIeMiN3kvyLAcJAAAAAPcgh+jh6RzsfQElj7/e1RNAQEFQykiqYfLbUEMd+qHcfkLCNwe3tczJQDckGH1cT7Y9At16pPfek1bKZeM7YpQ==</CipherValue>
      </CipherData>
    </EncryptedData>
  </connectionStrings>

  <system.web>
    <compilation debug="true" explicit="true" targetFramework="4.0"/>
    <httpCookies httpOnlyCookies="true" requireSSL="true"/>

    <customErrors mode="On" defaultRedirect="DefaultErrorPage.htm">
      <error statusCode="404" redirect="ErrorPage.htm"/>
    </customErrors>

    <trace enabled="false"/>
  </system.web>
</configuration>

我现在遇到的问题是,当我尝试使用访问web.config文件中数据的页面(例如连接字符串)时,我将得到一个空引用异常。

例如,这一行将生成一个空引用异常:

代码语言:javascript
复制
string connection = ConfigurationManager.ConnectionStrings["DB_Connection"].ConnectionString;

我该怎么解决这个问题?谢谢您:)

Clarification

在使用数据保护API加密之前,这一行工作得很好。空引用异常在加密后开始出现。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-02 09:54:46

不知道您是否解决了这个问题,但对我来说,解决方案是将对"C:\Documents和Settings\All User\Application Data\Microsoft\Crypto\RSA\MachineKeys“中创建的机器密钥文件的读访问权限授予帐户NT权限\网络服务。

导致NullReferenceException的原因是应用程序无法读取包含加密/解密密钥的文件。

致以良好的问候,马丁

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18963887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档