Existe-t-il un moyen d'inviter l'utilisateur à saisir des données pendant une génération NAnt? Je veux exécuter une commande qui prend un mot de passe, mais je ne veux pas mettre le mot de passe dans le script de construction.Traitement des mots de passe dans le script de génération NAnt
Répondre
J'utilise un script pour l'instant, mais j'aimerais entendre s'il y a une méthode préconstruits déjà disponible. Un grand merci à Sundar pour l'astuce ForegroundColor.
Je ne sais pas si cela importe si vous utilisez Project.Log ou allez directement à Console.WriteLine(), les ninjas NAnt veulent me renseigner?
est ici le script et une cible de l'échantillon qui l'utilise:
<target name="input">
<script language="C#" prefix="password" >
<code><![CDATA[
[Function("ask")]
public string AskPassword(string prompt) {
Project.Log(Level.Info, prompt);
ConsoleColor oldColor = Console.ForegroundColor;
Console.ForegroundColor = Console.BackgroundColor;
try
{
return Console.ReadLine();
}
finally
{
Console.ForegroundColor = oldColor;
}
}
]]></code>
</script>
<echo message="Password is ${password::ask('What is the password?')}"/>
</target>
Une solution que j'ai utilisée plusieurs fois est d'avoir un fichier de configuration local contenant des mots de passe, des chaînes de connexion, etc. spécifiques à chaque développeur. Le script de construction NAnt inclura ces paramètres lors de la construction.
Le fichier de configuration local n'existe pas dans le système de contrôle de version, de sorte que les mots de passe ne sont pas affichés. La première fois qu'un développeur vérifie une base de code et essaie de construire, il doit créer ce fichier de configuration. Pour le rendre facile pour lui, il pourrait y avoir un fichier modèle disponible tel que my.config.template contenant toutes les propriétés qui peuvent être personnalisées.
Essayez ceci:
<script language="C#" prefix="test" >
<code>
<![CDATA[
[Function("get-password")]
public static string GetPassword() {
Console.WriteLine("Please enter the password");
ConsoleColor oldForegroundColor = Console.ForegroundColor;
Console.ForegroundColor = Console.BackgroundColor;
string password = Console.ReadLine();
Console.ForegroundColor = oldForegroundColor;
return password;
}
]]>
</code>
</script>
<target name="test.password">
<echo message='${test::get-password()}'/>
</target>
-->
J'expérimentais quelque chose de similaire, mais changer ForegroundColor est une bonne idée! –
Cette affiche astérisques que vous tapez le mot de passe:
<code><![CDATA[
[Function("ask")]
public string AskPassword(string prompt) {
Project.Log(Level.Info, prompt);
string password = "";
// get the first character of the password
ConsoleKeyInfo nextKey = Console.ReadKey(true);
while (nextKey.Key != ConsoleKey.Enter)
{
if (nextKey.Key == ConsoleKey.Backspace)
{
if (password.Length > 0)
{
password = password.Substring(0, password.Length - 1);
// erase the last * as well
Console.Write(nextKey.KeyChar);
Console.Write(" ");
Console.Write(nextKey.KeyChar);
}
}
else
{
password += nextKey.KeyChar;
Console.Write("*");
}
nextKey = Console.ReadKey(true);
}
Console.WriteLine();
return password;
}
]]></code>
- 1. Améliorer mon script de génération de mot de passe
- 2. Sécurisation des mots de passe dans le problème de configuration
- 3. Création hash des mots de passe
- 4. script shell pour réinitialiser les mots de passe Evolution
- 5. Mots de passe prononçables?
- 6. SSIS et mots de passe
- 7. tsql- mots de passe forts
- 8. Mots de passe hachés et structure d'entité
- 9. Stockage des mots de passe dans les applications iPhone
- 10. Cryptage des mots de passe dans WinForms app.config, .NET
- 11. Quel est le meilleur moyen d'introduire le décryptage et l'affichage des mots de passe dans delphi
- 12. Mots de passe en hébreu sous WinXP
- 13. Installation de nant avec un script batch
- 14. Fichier de traitement par lots: Mot de passe Étoiles/Cercles
- 15. Gestion des mots de passe tiers avec intégration complète
- 16. Traitement des erreurs de tâche de script SSIS Dataflow
- 17. Définition des noms d'utilisateur et mots de passe mysql
- 18. Enregistrement de mots de passe dans une application
- 19. Vérification des mots de passe contre la base de données de mots sur le serveur ou utiliser un service Web?
- 20. mots de passe et Hashed PasswordRecovery contrôle
- 21. Suggestions sur le stockage des mots de passe dans la base
- 22. Comment stocker les mots de passe dans l'application Winforms?
- 23. Comment puis-je auditer les mots de passe dans PowerShell?
- 24. stocker les mots de passe dans SQL Server
- 25. Traitement de SQLCMD: r dans un script de post-déploiement
- 26. connexion de traitement dans un script de sauvegarde automatique
- 27. Fournir le mot de passe en utilisant le script Shell
- 28. L'algorithme de hachage utilisé pour le hachage des mots de passe affecte-t-il la génération des tables arc-en-ciel?
- 29. Comment modifier les mots de passe à l'aide de System.DirectoryServices.Protocols
- 30. GWT et IE7 - faire en sorte que le navigateur se souvienne des mots de passe
Je considère que, mais il semble plus de travail que nécessaire pour chaque développeur. Si je me retrouve avec plusieurs paramètres, je pourrais passer à cela. –
C'est quelque chose que vous n'aurez à faire qu'une fois lors de la construction pour la première fois. Je préférerais certainement cela au lieu d'avoir à entrer un mot de passe chaque fois que je veux construire. –