Étant donné que vous n'avez pas accès au serveur, vous devrez exécuter la commande pour chiffrer les sections de votre fichier web.config à l'aide du code. Vous pouvez le faire en créant une simple page Web et l'exécuter sur le chargement de la page ou sur un clic de bouton. Voici le bloc de code que vous devrez exécuter, légèrement modifié à partir de la source que j'ai prise de Microsoft (http://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.protectsection.aspx). Bien que ... ce code ne fonctionne pas vraiment pour moi. Non que le code ne soit pas correct, mais parce que mon compte n'a pas d'autorisation dans le magasin de clés Rsa, vos résultats peuvent varier. Si cela ne fonctionne pas lire puis pour l'option 2.
' Get the current configuration file.'
Dim config As System.Configuration.Configuration = Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Nothing)
' Get the section.'
Dim section As AppSettingsSection = CType(config.GetSection("appSettings"), AppSettingsSection)
' Protect (encrypt) the section.'
section.SectionInformation.ProtectSection("RSAProtectedConfigurationProvider")
' Save the encrypted section.'
section.SectionInformation.ForceSave = True
config.Save(ConfigurationSaveMode.Full)
Crédit: J'ai trouvé ce lien avec le code via Need Encrypted connection string and stmp information in the web.config.
Option 2: Pour des raisons de sécurité, vous souhaitez toujours utiliser la clé de l'ordinateur. Si quelqu'un parvient à télécharger votre fichier web.config, il ne pourra pas déchiffrer vos paramètres. Une façon de le faire est de chiffrer tous vos paramètres en utilisant la clé de la machine à la main, et décrypter chaque fois que vous avez besoin de les utiliser, ou vous pouvez les stocker dans le cache à chaque démarrage de l'application.
Pour crypté et décrypter une application valeur clé que vous pouvez utiliser le code comme ceci:
Dim encryptedString As String = Convert.ToBase64String(ProtectedData.Protect(System.Text.UTF8Encoding.UTF32.GetBytes("Testing"), Nothing, DataProtectionScope.LocalMachine))
Dim decryptedString As String = System.Text.UTF8Encoding.UTF32.GetString(ProtectedData.Unprotect(Convert.FromBase64String(encryptedString), Nothing, DataProtectionScope.LocalMachine))
Response.Write(encryptedString + " - " + decryptedString)
Comment conserver la clé d'une manière qui permet à l'application d'utiliser le mot de passe sans laisser la clé dans une position précaire ? – Tyrsius
Il y a quelques options pour cela .... vous pouvez utiliser la clé qui est là dans web.config (MachineKey), ou vous pouvez créer votre propre clé et la mettre dans une option web.config cryptée. –
@Tyrsius - J'ai ajouté quelques détails ainsi que les options juste pour vous donner quelques idées. –