2011-02-04 4 views
1

Toute section dans mon fichier web.config que je veux chiffrer je lance cette ligne de commande util: aspnet_regiis -pe « anySection » -app «/SampleApplication »connectionStrings dans un Cryptage fichier web.config

Tout fonctionne très bien jusqu'à ce que je tente chiffrent mes sections connectionStrings

Je define (et je ne peux pas changer cela) ma section connectionStrings comme ceci:

<connectionStrings> 
    <add key="myKey" value="myValue"/>  
</connectionStrings> 

Mais la façon « standard » de la définir est comme ceci:

<connectionStrings> 
    <add name="myName" connectionString="...." providerName="..." /> 
    </connectionStrings> 

Comment quand je lance:

aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" 

erreurs avec "... Attribut non reconnu 'clé' ....". Si je change la section de chaîne de connexion pour être la manière standard cela fonctionne bien. Mais je ne peux pas utiliser ce format.

Existe-t-il un moyen de le faire en utilisant aspnet_regiis util? Le faire avec du code n'est pas une option pour moi.

Existe-t-il un moyen d'exécuter cette extension sans spécifier l'application (-app "/ SampleApplication") donnant à la place le chemin du fichier web.config?

grâce un million

+1

Si vous faites des choses de manière non standard, vous ne pouvez pas vous attendre à ce que les outils automatisés fonctionnent. – Oded

+0

Je dois poser la question évidente, pourquoi utilisez-vous une méthode non standard pour faire le connectionString au-delà du fait que c'est un système hérité? –

Répondre

1

On dirait que vous avez copié et collé un appSetting

<add key="myKey" value="myValue"/> est invalide depuis key et value ne sont pas un élément attribue l'connectionString attend.

Vous devrez utiliser le "standard"

<add name="myName" connectionString="...." />


connectionStrings Element (ASP.NET Settings Schema)

+0

Salut chasseur. Je n'ai pas copié et collé un appSetting, j'ai copié et collé une section appelée "connectionStrings" (j'aurais pu l'appeler testSection ou quoi que ce soit) qui a une paire valeur/clé (tout comme les paramètres de l'application). C'est un système hérité et ce que je dois pouvoir faire est d'utiliser cet utilitaire sur des sections qui ont une paire clé-valeur. Est-ce que ce n'est pas possible? Et pourquoi pas, je ne vois pas le problème? – Bob

+0

'aspnet_regiis -pe" connectionStrings "-app"/SampleApplication "' recherche 'name' et' connectionString'. Il ne sait pas quoi faire avec 'key' et' value'. l'utilisation de 'key' et' value' dans l'élément 'connectionStrings' est invalide comme défini par le schéma. – hunter

+0

Merci beaucoup. Ne supposez-vous pas que je peux fournir un chemin d'accès au fichier web.config au lieu de donner le nom de l'application? – Bob

2

L'élément rapporté dans l'élément connectionStrings a un schéma bien défini (voir http://msdn.microsoft.com/en-us/library/htw9h4z3.aspx) et il est pas le même élément que l'élément add à l'intérieur de l'élément appSettings.

Si vous voulez chiffrer la section appSettings, et ce serait toute la sectionappSettings, vous pouvez le faire:

aspnet_regiis -pe "appSettings" -app "/SampleApplication" -prov "RsaProtectedConfigurationProvider" 
+0

Merci beaucoup. Ne supposez-vous pas que je peux fournir un chemin d'accès au fichier web.config au lieu de donner le nom de l'application? – Bob

+0

Je ne l'ai pas essayé moi-même, mais en théorie, oui. Utilisez l'argument -pef au lieu des arguments -pe et -app. Par exemple, si votre fichier web.config se trouve dans le répertoire physique C: \ Sites \ MySite, alors: aspnet_regiis -pef "appSettings" "C: \ Sites \ MySite" -prov "RsaProtectedConfigurationProvider" – dgvid

0

j'ai eu une erreur semblable quand je ne courais pas la ligne de commande un administrateur.

Questions connexes