2009-08-31 9 views
2

J'ai cherché autour de Google et Stackoverflow, mais je ne vois pas comment trouver une solution pour éditer le fichier web.config pour chiffrer et stocker une chaîne de connexion SQL Server pour un script d'installation. Le lien à Accessing the web.config in Medium trust semble suggérer que le code suivant fonctionnerait au lieu de OpenWebConfiguration, mais cela ne fonctionne pas sur le serveur de développement local (exécutant Medium Trust) ou sur Rackspace Cloud (anciennement Mosso).Chiffrer et enregistrer la chaîne de connexion ASP.NET dans le fichier web.config à l'aide de Trust moyen?

String cfgpath = Server.MapPath(@"/web.config"); 
cfg = System.Configuration.ConfigurationManager.OpenExeConfiguration(cfgpath); 

Rackspoace Nuage peut être configuré pour enregistrer des fichiers Impersonation, mais je reçois toujours la « Une erreur produite lors du chargement d'un fichier de configuration: Demande d'autorisation de type « System.Security.Permissions.FileIOPermission » lorsque attraper le ConfigurationErrorsException.

Des idées comment je peux éditer le web.config pour crypter et stocker la chaîne de connexion SQL Server pendant le script d'installation?

Mise à jour # 1 Il semble que DpapiProtectedConfigurationProvider et RsaProtectedConfigurationProvider requièrent FullTrust. Existe-t-il d'autres solutions pour protéger davantage le fichier Web.config lors de l'utilisation de MediumTrust?

+0

Utilisez-vous aspnet_regiis pour crypter le web.config? –

+0

Je n'ai pas résolu ce problème en raison des exigences de Medium Trust de mon hébergeur. – Luke

Répondre

0

Si votre fournisseur le permet, vous pouvez configurer un fichier de règles personnalisé comme décrit dans How To: Use Medium Trust in ASP.NET 2.0. Mais il est peu probable qu'ils vous laisseront.

Vous pouvez également essayer d'utiliser XDocument/XmlDocument et XPath pour obtenir/définir des valeurs de configuration, mais vous aurez toujours à traiter avec le chiffrement/déchiffrement en utilisant une bibliothèque qui fonctionne en fiducie moyenne. (voirModify configuration section programmatically in medium trust)

Si possible, vous pouvez également essayer d'utiliser un processus distinct qui modifie le fichier à un autre, et permet ensuite le fichier modifié à télécharger sur le serveur via des moyens externes, comme FTP ou sur le Web Déployer la fonctionnalité de IIS7.

Questions connexes