J'essaie d'appeler un service Web à partir d'une application de console et je dois fournir au client un objet System.Net.NetworkCredential
.
Est-il possible de créer un objet NetworkCredential
pour l'utilisateur qui a démarré l'application sans demander de nom d'utilisateur/mot de passe?Obtention de NetworkCredential pour l'utilisateur actuel (C#)
Répondre
Si le service Web appelé utilise la sécurité intégrée de Windows, créer un NetworkCredential
à partir du WindowsIdentity
actuel devrait être suffisant pour permettre au service Web d'utiliser la connexion Windows actuelle des utilisateurs. Cependant, si le service Web utilise un modèle de sécurité différent, il n'y a aucun moyen d'extraire un mot de passe de l'identité en cours ... qui serait en soi non sécurisé, vous permettant, le développeur, de voler les mots de passe de vos utilisateurs . Vous devrez probablement fournir à votre utilisateur un moyen de fournir son mot de passe et le conserver dans un cache sécurisé si vous ne voulez pas qu'il le répète.
Edit: Pour obtenir les informations d'identification de l'identité actuelle, utilisez ce qui suit:
Uri uri = new Uri("http://tempuri.org/");
ICredentials credentials = CredentialCache.DefaultCredentials;
NetworkCredential credential = credentials.GetCredential(uri, "Basic");
Vous pouvez obtenir le nom d'utilisateur en utilisant System.Security.Principal.WindowsIdentity.GetCurrent() mais il n'y a pas moyen d'obtenir le mot de passe de l'utilisateur actuel!
J'espère qu'il n'y a pas moyen d'obtenir le mot de passe de l'utilisateur actuel! :) Ce que je voudrais faire est d'utiliser les 'informations d'identification actuelles' par défaut pour le service Web. –
- 1. WCF: relation entre NetworkCredential et Usurpation d'identité
- 2. C#: Obtention de l'image derrière un contrôle
- 3. Obtention de fonctions C++ non gérées à partir de C#
- 4. Obtention et impression de caractères dans C?
- 5. Pour l'utilisateur actuel de $ en LATEX
- 6. Obtention d'instances différentes pour communiquer
- 7. Numéro de ligne actuel d'un System.Xml.XmlReader (C# & .Net)
- 8. Obtention du contexte d'attribut en C#
- 9. Obtention de codages de type pour les signatures de méthode dans Cocoa/Objective-C?
- 10. Obtention de valeur à partir de DataView C#
- 11. Obtention de mesures précises à partir d'une minuterie en C#
- 12. Obtention de la version
- 13. Obtention d'une valeur de contrôles dynamiques après Page_Load en C#?
- 14. Obtention du contenu de PropertyGrid?
- 15. C# Technique - Obtention de valeurs constantes par chaîne
- 16. Obtention du nom de la méthode actuelle en C++
- 17. Obtention de la propriété SourceDir à partir d'une action personnalisée C#
- 18. Obtenez le répertoire de travail actuel pour cmd.exe
- 19. Obtention du répertoire actuel dans un assembly utilisé par une application de service Web et un service Windows
- 20. vimrc - répertoire de travail actuel
- 21. MKMapView Affichage de l'emplacement actuel
- 22. Obtention du schéma pour une table
- 23. Changer la priorité du processus actuel en C
- 24. Mysql outfile au répertoire de travail actuel?
- 25. Obtention du "Receivers Companion" pour Apache Log4j
- 26. Obtention d'une image pour étirer une div
- 27. Obtention de données supplémentaires pour une entité de domaine
- 28. Comment obtenir un chemin vers le bureau pour l'utilisateur actuel en C#?
- 29. Obtention d'attributs d'éléments de trousseau
- 30. Obtention d'un UUID de téléphone via l'iPhone SDK
Comment créer un NetworkCredential à partir d'un WindowsIdentity? –
Merci! Je viens d'utiliser CredentialCache.DefaultNetworkCredentials. –
La méthode GetCredential renvoie-t-elle les informations d'identification des noms d'utilisateur et mots de passe stockés dans Windows XP/2003/Vista/2008? J'ai posé une question connexe ici: http://stackoverflow.com/questions/994232/how-to-call-a-web-service-using-stored-credentials Si GetCredential récupère les informations d'identification du magasin basé sur l'uri & type d'authentification, j'aurai ma réponse. Je vais tester cela et rendre compte ... –