So, using the aspnet_regiis.exe utility, I did the following
//Create the container aspnet_regiis -pc MyRSAKey -exp //Write key to file aspnet_regiis -px MyRSAKey MyRSAKey.xml //Install the key into a machine-level RSA key provider. aspnet_regiis -pi MyRSAKey MyRSAKey.xml //Grant access to the contrainer aspnet_regiis -pa "MyRSAKey" "NT Authority\Network service"
Now I thought that to use this key I need to add this to the web.config file
<configProtectedData defaultProvider="MyProviderName"> <providers> <add name="MyProviderName" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" keyContainerName="MyRSAKey" useMachineContainer="true" /> </providers>
Now when I run this command, it works:
aspnet_regiis -pef "sectiomName" "pathToConfigFile" -prov "MyProviderName"
The fact is that it works no matter what value I have for keyContainerName. Or even when I completely extract keyContainerName from the configuration file, it still works, assuming that it does not actually use the key that I generated and installed.
Also, visual studio 2010 does not even recognize keyContainerName (or useMachineContainer), saying that the name "keyContainerName" is not allowed.
What's going on here?
source share