Help with encrypting connection strings

  • Thread starter Thread starter girthyvhf
  • Start date Start date
G

girthyvhf

Hello all,

I am trying to use the example for encrypting connection strings
called:

How To: Build And Run the Protected Configuration Provider Example.

This is located in VS 2005 help at:

ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_aspnetcon/html/7ed8b347-c790-4768-9ae3-53ddc934ac78.htm

I am at the point where I am using aspnet_regiis.exe to do the
encryption but I keep getting the error:

Could not load file or assembly
'TripleDESProtectedConfigurationProvider, Version=0.0.0.0,
PublicKeyToken=e0f3f54636e895dd' or one of its dependencies. The system
cannot find the file specified.
Failed!

I have followed the directions in the example and made the proper
adjustments for my specific environment (like changing the Public Key
Token in the web.config entry to the one created when I installed the
dll to the GAC). But for some reason aspnet_regiis.exe can't seem to
locate the dll.

Here is my web.config entry:

<configProtectedData>
<providers>
<add name="TripleDESProvider"
type="ProtectedConfiguration.TripleDESProtectedConfigurationProvider,
TripleDESProtectedConfigurationProvider, Version=0.0.0.0,
CultureInfo=neutral, PublicKeyToken=e0f3f54636e895dd,
processorArchitecture=MSIL" keyFilePath="c:\AppConfig\Keys.txt"/>
</providers>
</configProtectedData>

You may notice that in the type="" part the namespace is different than
in the example. I have accounted for this. I also tried it with the
example namespace first with similar results. I also have tried
running aspnet_regiis.exe -i -enable. Didn't help. I have entered the
assembly location in the registry to get it to show up on the .NET tab
of the Add References dialog. Didn't help.

Any suggestions would be welcome.

Thanks,
Dave
 
Final update: I have everything working correctly out of the GAC. Here
was my issue:

Too much copying and pasting and not enough paying attention to the
details. Thanks to Suzanne Cook and her blog on gotdotnet.com for
pointing out that you need to have the names of things referenced in
the GAC exact. At it turns out, the line in my web.config file:

<add name="TripleDESProvider"
type="Samples.AspNet.ProtectedConfiguration.TripleDESProtectedConfigurationProvider,
TripleDESProtectedConfigurationProvider, Version=0.0.0.0,
CultureInfo=neutral, PublicKeyToken=703e257c00b2e90a,
processorArchitecture=MSIL" keyFilePath="c:\AppConfig\Keys.txt"/>

actually needed to be:

<add name="TripleDESProvider"
type="Samples.AspNet.ProtectedConfiguration.TripleDESProtectedConfigurationProvider,
TripleDESProtectedConfigurationProvider, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=703e257c00b2e90a,
processorArchitecture=MSIL" keyFilePath="c:\AppConfig\Keys.txt"/>

The difference being the Culture=neutral part. Apparently when I
copied and pasted from Microsoft's example, it came with
CultureInfo=neutral, which was wrong in my case. Go figure. Anyway,
Suzanne Cook pointed out that by doing gacutil /l from the dot net
command prompt you can get a list of everything in the GAC as the GAC
sees the names. Once I did this and compared it to my web.config entry
all was well in my world. Now if only I could replace all the hair I
have pulled out of my head...

Dave
 
Back
Top