Ho un'applicazione Web con una sezione di configurazione personalizzata. Quella sezione contiene informazioni che mi piacerebbe crittografare (speravo di utilizzare ASPNet_RegIIS piuttosto che farlo da solo).Utilizzo di ASPNet_Regiis per crittografare la sezione di configurazione personalizzata - puoi farlo?
Web.Config:
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<configSections>
<section name="MyCustomSection"
type="MyNamespace.MyCustomSectionHandler, MyAssembly"/>
</configSections>
<configProtectedData>
<providers>
<clear />
<add name="DataProtectionConfigurationProvider"
type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,
processorArchitecture=MSIL"
keyContainerName="MyKeyContainer"
useMachineContainer="true" />
</providers>
</configProtectedData>
<MyCustomSection>
<blah name="blah1">
<blahChild name="blah1Child1" />
</blah>
</MyCustomSection>
Il gestore di configurazione funziona alla grande prima di provare a cifrare. Quando provo per cifrare con:
aspnet_regiis -pef "MyCustomSection" c:\inetpub\wwwroot\MyWebsite -prov DataProtectionConfigurationProvider
ottengo un errore:
Encrypting configuration section... An error occurred creating the configuration section handler for MyCustomSection: Could not load file or assembly 'MyAssembly' or one of its dependencies. The system cannot find the file specified. (c:\inetpub\wwwroot\MyWebsite\web.config line 5)
Ho provato con/senza il provider configurato. Con/senza gruppi di sezioni. Con/senza aver avviato il sito Web prima mano. Ho provato a mettere temporaneamente il mio assembly nel GAC per la registrazione. Ho anche provato la mia sezione log4net solo per provare qualcosa che non era mio, senza fortuna. Ho eseguito il prompt dei comandi come amministratore. Qualche idea? Oppure non è possibile utilizzare ASPNet_RegIIS per le sezioni personalizzate?
Un ultimo scatto dopo la visualizzazione di MSDN stava cambiando il gestore in modo che ereditasse da ConfigurationSection anziché implementare IConfigurationSectionHandler poiché era tecnicamente deprecato in 2.0 (sperando fosse qualcosa riguardante la versione di aspnet_regiis). Non c'è fortuna neanche lì.
Qualsiasi idea me lo faccia sapere. Grazie!
Ho avuto lo stesso problema. Non credo che ci sia un modo per farlo funzionare senza mettere l'assembly nel gac o l'hack nella risposta qui sotto? –
Ero stanco di giocherellare con esso - quindi sono andato solo mettendo temporaneamente il gruppo nel gac. –