From e8fe63499bf5bdb86a9809e37cdd2ea88966a330 Mon Sep 17 00:00:00 2001 From: Carol Wang Date: Fri, 22 May 2026 10:55:12 +0800 Subject: [PATCH 1/3] [dotnet-svcutil] add opt-in default credentials option --- .../lib/src/CommandProcessorOptions.cs | 8 ++++- src/dotnet-svcutil/lib/src/HelpGenerator.cs | 1 + .../src/Metadata/MetadaExchangeResolver.cs | 24 ++++++++++++-- .../src/Metadata/MetadataDocumentLoader.cs | 21 ++++++++++-- .../lib/src/Metadata/ServiceDescriptor.cs | 24 ++++++++++++-- src/dotnet-svcutil/lib/src/SR.resx | 3 ++ .../lib/src/Shared/Options/SvcutilOptions.cs | 3 ++ src/dotnet-svcutil/lib/src/Tool.cs | 4 +-- src/dotnet-svcutil/lib/src/xlf/SR.cs.xlf | 5 +++ src/dotnet-svcutil/lib/src/xlf/SR.de.xlf | 5 +++ src/dotnet-svcutil/lib/src/xlf/SR.es.xlf | 5 +++ src/dotnet-svcutil/lib/src/xlf/SR.fr.xlf | 5 +++ src/dotnet-svcutil/lib/src/xlf/SR.it.xlf | 5 +++ src/dotnet-svcutil/lib/src/xlf/SR.ja.xlf | 5 +++ src/dotnet-svcutil/lib/src/xlf/SR.ko.xlf | 5 +++ src/dotnet-svcutil/lib/src/xlf/SR.pl.xlf | 5 +++ src/dotnet-svcutil/lib/src/xlf/SR.pt-BR.xlf | 5 +++ src/dotnet-svcutil/lib/src/xlf/SR.ru.xlf | 5 +++ src/dotnet-svcutil/lib/src/xlf/SR.tr.xlf | 5 +++ src/dotnet-svcutil/lib/src/xlf/SR.zh-Hans.xlf | 5 +++ src/dotnet-svcutil/lib/src/xlf/SR.zh-Hant.xlf | 5 +++ src/dotnet-svcutil/lib/tests/src/UnitTest.cs | 32 +++++++++++++++++++ 22 files changed, 175 insertions(+), 10 deletions(-) diff --git a/src/dotnet-svcutil/lib/src/CommandProcessorOptions.cs b/src/dotnet-svcutil/lib/src/CommandProcessorOptions.cs index 8206ca0572d..2bdd5473c8f 100644 --- a/src/dotnet-svcutil/lib/src/CommandProcessorOptions.cs +++ b/src/dotnet-svcutil/lib/src/CommandProcessorOptions.cs @@ -59,7 +59,7 @@ public bool NoTypeReuse internal const string WCFCSParamsFileName = "ConnectedService.json"; internal const string BaseServiceReferenceName = "ServiceReference"; - private static readonly List s_cmdLineOverwriteSwitches = new List { Switches.NoLogo.Name, Switches.Verbosity.Name, Switches.ToolContext.Name, Switches.ProjectFile.Name, Switches.AcceptCertificate.Name, Switches.ServiceContract.Name, Switches.Language.Name }; + private static readonly List s_cmdLineOverwriteSwitches = new List { Switches.NoLogo.Name, Switches.Verbosity.Name, Switches.ToolContext.Name, Switches.ProjectFile.Name, Switches.AcceptCertificate.Name, Switches.UseDefaultCredentials.Name, Switches.ServiceContract.Name, Switches.Language.Name }; internal class CommandSwitches { @@ -93,6 +93,7 @@ internal class CommandSwitches public readonly CommandSwitch Verbosity = new CommandSwitch(VerbosityKey, "v", SwitchType.SingletonValue); public readonly CommandSwitch Wrapped = new CommandSwitch(WrappedKey, "wr", SwitchType.Flag); public readonly CommandSwitch AcceptCertificate = new CommandSwitch(AccecptCertificateKey, "ac", SwitchType.Flag); + public readonly CommandSwitch UseDefaultCredentials = new CommandSwitch(UseDefaultCredentialsKey, "udc", SwitchType.Flag); public readonly CommandSwitch ServiceContract = new CommandSwitch(ServiceContractKey, "sc", SwitchType.Flag); public readonly CommandSwitch Language = new CommandSwitch(LanguageKey, "l", SwitchType.SingletonValue, OperationalContext.Global); @@ -273,6 +274,11 @@ internal async Task ProcessBasicOptionsAsync(ILogger logger, CancellationToken c this.AcceptCert = false; } + if (!this.UseDefaultCredentials.HasValue) + { + this.UseDefaultCredentials = false; + } + if (!this.ServiceContract.HasValue) { this.ServiceContract = false; diff --git a/src/dotnet-svcutil/lib/src/HelpGenerator.cs b/src/dotnet-svcutil/lib/src/HelpGenerator.cs index 38621edebc8..b67a9c16e16 100644 --- a/src/dotnet-svcutil/lib/src/HelpGenerator.cs +++ b/src/dotnet-svcutil/lib/src/HelpGenerator.cs @@ -71,6 +71,7 @@ private static void WriteCodeGenerationHelp() ArgumentInfo.CreateParameterHelpInfo(CommandProcessorOptions.Switches.RuntimeIdentifier.Name, SR.ParametersRuntimeIdentifier, string.Format(SR.HelpRuntimeIdentifierFormat, CommandProcessorOptions.Switches.RuntimeIdentifier.Abbreviation)), ArgumentInfo.CreateParameterHelpInfo(CommandProcessorOptions.Switches.TargetFramework.Name, SR.ParametersTargetFramework, string.Format(SR.HelpTargetFrameworkFormat, CommandProcessorOptions.Switches.TargetFramework.Abbreviation)), ArgumentInfo.CreateFlagHelpInfo( CommandProcessorOptions.Switches.AcceptCertificate.Name, string.Format(SR.HelpAcceptCertificateFormat, CommandProcessorOptions.Switches.AcceptCertificate.Abbreviation)), + ArgumentInfo.CreateFlagHelpInfo( CommandProcessorOptions.Switches.UseDefaultCredentials.Name, string.Format(SR.HelpUseDefaultCredentialsFormat, CommandProcessorOptions.Switches.UseDefaultCredentials.Abbreviation)), ArgumentInfo.CreateFlagHelpInfo( CommandProcessorOptions.Switches.ServiceContract.Name, string.Format(SR.HelpServiceContractFormat, CommandProcessorOptions.Switches.ServiceContract.Abbreviation)), ArgumentInfo.CreateFlagHelpInfo( CommandProcessorOptions.Switches.Language.Name, string.Format(SR.HelpLanguage, CommandProcessorOptions.Switches.Language.Abbreviation)) } diff --git a/src/dotnet-svcutil/lib/src/Metadata/MetadaExchangeResolver.cs b/src/dotnet-svcutil/lib/src/Metadata/MetadaExchangeResolver.cs index bd63dbb11ed..6500ad54b31 100644 --- a/src/dotnet-svcutil/lib/src/Metadata/MetadaExchangeResolver.cs +++ b/src/dotnet-svcutil/lib/src/Metadata/MetadaExchangeResolver.cs @@ -49,6 +49,8 @@ private MetadataExchangeResolver(Binding binding) : base(binding) public IServerCertificateValidationProvider ServerCertificateValidationProvider { get; private set; } + public bool UseDefaultCredentials { get; private set; } + public bool HasServiceMetadata { get @@ -63,6 +65,16 @@ public static MetadataExchangeResolver Create( IHttpCredentialsProvider userCredentialsProvider, IClientCertificateProvider clientCertificatesProvider, IServerCertificateValidationProvider serverCertificateValidationProvider) + { + return Create(endpointAddress, userCredentialsProvider, clientCertificatesProvider, serverCertificateValidationProvider, useDefaultCredentials: false); + } + + public static MetadataExchangeResolver Create( + EndpointAddress endpointAddress, + IHttpCredentialsProvider userCredentialsProvider, + IClientCertificateProvider clientCertificatesProvider, + IServerCertificateValidationProvider serverCertificateValidationProvider, + bool useDefaultCredentials) { if (endpointAddress == null) { @@ -75,10 +87,14 @@ public static MetadataExchangeResolver Create( resolver.HttpCredentialsProvider = userCredentialsProvider; resolver.ClientCertificatesProvider = clientCertificatesProvider; resolver.ServerCertificateValidationProvider = serverCertificateValidationProvider; + resolver.UseDefaultCredentials = useDefaultCredentials; resolver.OperationTimeout = TimeSpan.MaxValue; resolver.ResolveMetadataReferences = true; resolver.MaximumResolvedReferences = MaximumResolvedReferencesDefault; - resolver.HttpCredentials = System.Net.CredentialCache.DefaultCredentials; + if (useDefaultCredentials) + { + resolver.HttpCredentials = System.Net.CredentialCache.DefaultCredentials; + } return resolver; } @@ -221,7 +237,7 @@ private async Task ResolveMetadataAsync(Uri serviceUri, MetadataExchangeCl private async Task ResolveMetadataAsync(Stream stream, string baseUri, CancellationToken cancellationToken) { - var loader = new MetadataDocumentLoader(baseUri, this.HttpCredentialsProvider, this.ClientCertificatesProvider, this.ServerCertificateValidationProvider); + var loader = new MetadataDocumentLoader(baseUri, this.HttpCredentialsProvider, this.ClientCertificatesProvider, this.ServerCertificateValidationProvider, UseDefaultCredentials); try { @@ -350,6 +366,10 @@ internal protected override HttpWebRequest GetWebRequest(Uri location, string di { request.Credentials = _userCredentials; } + else if (UseDefaultCredentials) + { + request.Credentials = CredentialCache.DefaultCredentials; + } #if !NETCORE10 if (_clientCertificate != null) diff --git a/src/dotnet-svcutil/lib/src/Metadata/MetadataDocumentLoader.cs b/src/dotnet-svcutil/lib/src/Metadata/MetadataDocumentLoader.cs index 79a4c035e1b..b52498ba012 100644 --- a/src/dotnet-svcutil/lib/src/Metadata/MetadataDocumentLoader.cs +++ b/src/dotnet-svcutil/lib/src/Metadata/MetadataDocumentLoader.cs @@ -39,6 +39,7 @@ public enum LoadState private readonly IHttpCredentialsProvider _httpCredentialsProvider; private readonly IClientCertificateProvider _clientCertificatesProvider; private readonly IServerCertificateValidationProvider _serverCertificateValidationProvider; + private readonly bool _useDefaultCredentials; private int? _hashCode; private readonly bool _resolveExternalDocs; @@ -82,10 +83,16 @@ public enum LoadState /// /// public MetadataDocumentLoader(string uri, IHttpCredentialsProvider httpCredentialsProvider, IClientCertificateProvider clientCertificatesProvider, IServerCertificateValidationProvider serverCertificateValidationProvider) + : this(uri, httpCredentialsProvider, clientCertificatesProvider, serverCertificateValidationProvider, useDefaultCredentials: false) + { + } + + public MetadataDocumentLoader(string uri, IHttpCredentialsProvider httpCredentialsProvider, IClientCertificateProvider clientCertificatesProvider, IServerCertificateValidationProvider serverCertificateValidationProvider, bool useDefaultCredentials) { _httpCredentialsProvider = httpCredentialsProvider; _clientCertificatesProvider = clientCertificatesProvider; _serverCertificateValidationProvider = serverCertificateValidationProvider; + _useDefaultCredentials = useDefaultCredentials; if (string.IsNullOrEmpty(uri)) { @@ -122,10 +129,16 @@ public MetadataDocumentLoader(string uri, IHttpCredentialsProvider httpCredentia /// /// public MetadataDocumentLoader(IEnumerable metadataFiles, bool resolveExternalDocuments, IHttpCredentialsProvider httpCredentialsProvider, IClientCertificateProvider clientCertificatesProvider, IServerCertificateValidationProvider serverCertificateValidationProvider) + : this(metadataFiles, resolveExternalDocuments, httpCredentialsProvider, clientCertificatesProvider, serverCertificateValidationProvider, useDefaultCredentials: false) + { + } + + public MetadataDocumentLoader(IEnumerable metadataFiles, bool resolveExternalDocuments, IHttpCredentialsProvider httpCredentialsProvider, IClientCertificateProvider clientCertificatesProvider, IServerCertificateValidationProvider serverCertificateValidationProvider, bool useDefaultCredentials) { _httpCredentialsProvider = httpCredentialsProvider; _clientCertificatesProvider = clientCertificatesProvider; _serverCertificateValidationProvider = serverCertificateValidationProvider; + _useDefaultCredentials = useDefaultCredentials; if (metadataFiles == null) { @@ -234,7 +247,8 @@ private async Task LoadAsync(string uri, string baseUrl, string basePath, Cancel new EndpointAddress(serviceUri), _httpCredentialsProvider?.Clone() as IHttpCredentialsProvider, _clientCertificatesProvider?.Clone() as IClientCertificateProvider, - _serverCertificateValidationProvider?.Clone() as IServerCertificateValidationProvider); + _serverCertificateValidationProvider?.Clone() as IServerCertificateValidationProvider, + _useDefaultCredentials); var metadataSections = await metadataExchangeResolver.ResolveMetadataAsync(cancellationToken).ConfigureAwait(false); _metadataSections.AddRange(metadataSections); @@ -430,7 +444,7 @@ private async Task LoadAsEPRAsync(XmlNS.XmlReader reader, CancellationToken canc { EndpointAddress epr = await AsyncHelper.RunAsync(() => EndpointAddress.ReadFrom(dictionaryReader), cancellationToken).ConfigureAwait(false); - MetadataExchangeResolver resolver = MetadataExchangeResolver.Create(epr, null, null, null); + MetadataExchangeResolver resolver = MetadataExchangeResolver.Create(epr, null, null, null, _useDefaultCredentials); IEnumerable resolvedMetadata = await resolver.ResolveMetadataAsync(cancellationToken).ConfigureAwait(false); _metadataSections.AddRange(resolvedMetadata); } @@ -566,7 +580,8 @@ private async Task DownloadSchemaImportAsync(Uri schemaUri, Cancellation new EndpointAddress(schemaUri), _httpCredentialsProvider?.Clone() as IHttpCredentialsProvider, _clientCertificatesProvider?.Clone() as IClientCertificateProvider, - _serverCertificateValidationProvider?.Clone() as IServerCertificateValidationProvider); + _serverCertificateValidationProvider?.Clone() as IServerCertificateValidationProvider, + _useDefaultCredentials); return await metadataExchangeResolver.DownloadMetadataFileAsync(cancellationToken).ConfigureAwait(false); } diff --git a/src/dotnet-svcutil/lib/src/Metadata/ServiceDescriptor.cs b/src/dotnet-svcutil/lib/src/Metadata/ServiceDescriptor.cs index e28101e07a9..91d755c0847 100644 --- a/src/dotnet-svcutil/lib/src/Metadata/ServiceDescriptor.cs +++ b/src/dotnet-svcutil/lib/src/Metadata/ServiceDescriptor.cs @@ -31,26 +31,46 @@ internal ServiceDescriptor( IHttpCredentialsProvider userCredentialsProvider, IClientCertificateProvider clientCertificateProvider, IServerCertificateValidationProvider serverCertificateValidationProvider) + : this(serviceUri, userCredentialsProvider, clientCertificateProvider, serverCertificateValidationProvider, useDefaultCredentials: false) + { + } + + internal ServiceDescriptor( + string serviceUri, + IHttpCredentialsProvider userCredentialsProvider, + IClientCertificateProvider clientCertificateProvider, + IServerCertificateValidationProvider serverCertificateValidationProvider, + bool useDefaultCredentials) { if (string.IsNullOrWhiteSpace(serviceUri)) { throw new ArgumentException(nameof(serviceUri)); } - this.metadataDocumentLoader = new MetadataDocumentLoader(serviceUri, userCredentialsProvider, clientCertificateProvider, serverCertificateValidationProvider); + this.metadataDocumentLoader = new MetadataDocumentLoader(serviceUri, userCredentialsProvider, clientCertificateProvider, serverCertificateValidationProvider, useDefaultCredentials); } internal ServiceDescriptor( List metadataFiles, IHttpCredentialsProvider userCredentialsProvider, IClientCertificateProvider clientCertificateProvider, IServerCertificateValidationProvider serverCertificateValidationProvider) + : this(metadataFiles, userCredentialsProvider, clientCertificateProvider, serverCertificateValidationProvider, useDefaultCredentials: false) + { + } + + internal ServiceDescriptor( + List metadataFiles, + IHttpCredentialsProvider userCredentialsProvider, + IClientCertificateProvider clientCertificateProvider, + IServerCertificateValidationProvider serverCertificateValidationProvider, + bool useDefaultCredentials) { if (metadataFiles == null) { throw new ArgumentException(nameof(metadataFiles)); } - this.metadataDocumentLoader = new MetadataDocumentLoader(metadataFiles, false, userCredentialsProvider, clientCertificateProvider, serverCertificateValidationProvider); + this.metadataDocumentLoader = new MetadataDocumentLoader(metadataFiles, false, userCredentialsProvider, clientCertificateProvider, serverCertificateValidationProvider, useDefaultCredentials); } internal ServiceDescriptor(MetadataDocumentLoader metadataDocumentLoader) diff --git a/src/dotnet-svcutil/lib/src/SR.resx b/src/dotnet-svcutil/lib/src/SR.resx index 4bb86359434..77ffae99092 100644 --- a/src/dotnet-svcutil/lib/src/SR.resx +++ b/src/dotnet-svcutil/lib/src/SR.resx @@ -622,6 +622,9 @@ Your credentials will be sent to the server in clear text. Accept remote certificate as trusted when downloading service metadata. (Short Form: -{0}) + + Use default credentials when downloading service metadata. (Short Form: -{0}) + Generate code for Service Contracts. Client class will not be generated. (Short Form: -{0}) diff --git a/src/dotnet-svcutil/lib/src/Shared/Options/SvcutilOptions.cs b/src/dotnet-svcutil/lib/src/Shared/Options/SvcutilOptions.cs index 9ca79b65d4c..2d5d8cd711c 100644 --- a/src/dotnet-svcutil/lib/src/Shared/Options/SvcutilOptions.cs +++ b/src/dotnet-svcutil/lib/src/Shared/Options/SvcutilOptions.cs @@ -24,6 +24,7 @@ internal class SvcutilOptions : UpdateOptions public const string ToolContextKey = "toolContext"; public const string VerbosityKey = "verbosity"; public const string AccecptCertificateKey = "acceptCertificate"; + public const string UseDefaultCredentialsKey = "useDefaultCredentials"; public const string ServiceContractKey = "serviceContract"; #endregion @@ -41,6 +42,7 @@ internal class SvcutilOptions : UpdateOptions public OperationalContext? ToolContext { get { return GetValue(ToolContextKey); } set { SetValue(ToolContextKey, value); } } public Verbosity? Verbosity { get { return GetValue(VerbosityKey); } set { SetValue(VerbosityKey, value); } } public bool? AcceptCert { get { return GetValue(AccecptCertificateKey); } set { SetValue(AccecptCertificateKey, value); } } + public bool? UseDefaultCredentials { get { return GetValue(UseDefaultCredentialsKey); } set { SetValue(UseDefaultCredentialsKey, value); } } public bool? ServiceContract { get { return GetValue(ServiceContractKey); } set { SetValue(ServiceContractKey, value); } } #endregion @@ -60,6 +62,7 @@ public SvcutilOptions() new SingleValueOption(ToolContextKey), new SingleValueOption(VerbosityKey) { DefaultValue = Svcutil.Verbosity.Normal }, new SingleValueOption(AccecptCertificateKey), + new SingleValueOption(UseDefaultCredentialsKey), new SingleValueOption(ServiceContractKey)); } diff --git a/src/dotnet-svcutil/lib/src/Tool.cs b/src/dotnet-svcutil/lib/src/Tool.cs index 6027a3c43fa..7ad9fd7bb24 100644 --- a/src/dotnet-svcutil/lib/src/Tool.cs +++ b/src/dotnet-svcutil/lib/src/Tool.cs @@ -202,8 +202,8 @@ internal static async Task RunAsync(CommandProcessorOptions option credsProvider.AcceptCert = options.AcceptCert.Value; ServiceDescriptor serviceDescriptor = options.Inputs.Count == 1 ? - new ServiceDescriptor(options.Inputs[0].ToString(), credsProvider, credsProvider, credsProvider) : - new ServiceDescriptor(options.Inputs.Select(i => i.ToString()).ToList(), credsProvider, credsProvider, credsProvider); + new ServiceDescriptor(options.Inputs[0].ToString(), credsProvider, credsProvider, credsProvider, options.UseDefaultCredentials.Value) : + new ServiceDescriptor(options.Inputs.Select(i => i.ToString()).ToList(), credsProvider, credsProvider, credsProvider, options.UseDefaultCredentials.Value); // When in Infrastructure mode (WCF CS) it is assumed the metadata docs have been downloaded and passed in as wsdl files. if (options.ToolContext != OperationalContext.Infrastructure) diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.cs.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.cs.xlf index 2d0e81a727f..50559f60f59 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.cs.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.cs.xlf @@ -652,6 +652,11 @@ Identifikátor dokumentu: {0} -= POUŽITÍ =- + + Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default credentials when downloading service metadata. (Short Form: -{0}) + + Determines the amount of information displayed by the tool. Valid values are '{0}'. (Short Form: -{1}) Určuje množství informací, které nástroj zobrazuje. Platné hodnoty: {0} (Krátký tvar: -{1}) diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.de.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.de.xlf index c050f793868..afa68527725 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.de.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.de.xlf @@ -652,6 +652,11 @@ Dokumentbezeichner: "{0}". -= NUTZUNG =- + + Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default credentials when downloading service metadata. (Short Form: -{0}) + + Determines the amount of information displayed by the tool. Valid values are '{0}'. (Short Form: -{1}) Legt die Menge an Informationen fest, die vom Tool angezeigt werden. Gültige Werte: {0}. (Kurzform: -{1}) diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.es.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.es.xlf index b4bbc991109..5e93bb03fd0 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.es.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.es.xlf @@ -652,6 +652,11 @@ Identificador del documento: "{0}". -= USO =- + + Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default credentials when downloading service metadata. (Short Form: -{0}) + + Determines the amount of information displayed by the tool. Valid values are '{0}'. (Short Form: -{1}) Determina la cantidad de información que muestra la herramienta. Los valores válidos son "{0}". (Forma corta: -{1}) diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.fr.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.fr.xlf index c6217db1f8a..d8283191380 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.fr.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.fr.xlf @@ -652,6 +652,11 @@ Identificateur de document : '{0}'. -= USAGE =- + + Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default credentials when downloading service metadata. (Short Form: -{0}) + + Determines the amount of information displayed by the tool. Valid values are '{0}'. (Short Form: -{1}) Détermine la quantité d'informations affichée par l'outil. Les valeurs valides sont '{0}'. (Forme abrégée : -{1}) diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.it.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.it.xlf index 8c039dfba9a..997d23914f1 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.it.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.it.xlf @@ -652,6 +652,11 @@ Identificatore di documento: '{0}'. -= UTILIZZO =- + + Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default credentials when downloading service metadata. (Short Form: -{0}) + + Determines the amount of information displayed by the tool. Valid values are '{0}'. (Short Form: -{1}) Determina la quantità di informazioni visualizzate dallo strumento. I valori validi sono: '{0}'. Forma breve: -{1} diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.ja.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.ja.xlf index 0e83c3b8ca5..ff71509f675 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.ja.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.ja.xlf @@ -652,6 +652,11 @@ Document Identifier: '{0}'. -= 使用法 =- + + Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default credentials when downloading service metadata. (Short Form: -{0}) + + Determines the amount of information displayed by the tool. Valid values are '{0}'. (Short Form: -{1}) ツールによって表示される情報の量を決定します。有効な値は '{0}' です。(短い形式: -{1}) diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.ko.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.ko.xlf index df79c3b67ce..e4903d4bd3e 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.ko.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.ko.xlf @@ -652,6 +652,11 @@ Document Identifier: '{0}'. -= 사용법 =- + + Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default credentials when downloading service metadata. (Short Form: -{0}) + + Determines the amount of information displayed by the tool. Valid values are '{0}'. (Short Form: -{1}) 도구에 표시되는 정보의 양을 결정합니다. 유효한 값은 '{0}'입니다(약식: -{1}). diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.pl.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.pl.xlf index f761c161994..8eed830746c 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.pl.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.pl.xlf @@ -652,6 +652,11 @@ Identyfikator dokumentu: „{0}”. -= UŻYCIE =- + + Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default credentials when downloading service metadata. (Short Form: -{0}) + + Determines the amount of information displayed by the tool. Valid values are '{0}'. (Short Form: -{1}) Określa ilość informacji wyświetlanych przez narzędzie. Prawidłowe wartości to „{0}”. (Krótka wersja: -{1}) diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.pt-BR.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.pt-BR.xlf index 01a14cfc559..0525e22b701 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.pt-BR.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.pt-BR.xlf @@ -652,6 +652,11 @@ Identificador do Documento: '{0}'. -= USO =- + + Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default credentials when downloading service metadata. (Short Form: -{0}) + + Determines the amount of information displayed by the tool. Valid values are '{0}'. (Short Form: -{1}) Determina a quantidade de informações exibidas pela ferramenta. Os valores válidos são '{0}'. (Forma Abreviada: -{1}) diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.ru.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.ru.xlf index 8b35a8f61d5..1a2630fd4b6 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.ru.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.ru.xlf @@ -652,6 +652,11 @@ Document Identifier: '{0}'. -= Использование =- + + Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default credentials when downloading service metadata. (Short Form: -{0}) + + Determines the amount of information displayed by the tool. Valid values are '{0}'. (Short Form: -{1}) Определяет объем сведений, отображаемых средством. Допустимые значения: "{0}". (Краткая форма: -{1}) diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.tr.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.tr.xlf index 4e7fff2fd33..2f7ecef6fa7 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.tr.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.tr.xlf @@ -652,6 +652,11 @@ Belge Tanımlayıcısı: '{0}'. -= KULLANIM =- + + Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default credentials when downloading service metadata. (Short Form: -{0}) + + Determines the amount of information displayed by the tool. Valid values are '{0}'. (Short Form: -{1}) Araç tarafından görüntülenen bilgi miktarını belirler. Geçerli değerler: '{0}'. (Kısa Biçim: -{1}) diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.zh-Hans.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.zh-Hans.xlf index 1cdfb2d92f4..6260e93a06f 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.zh-Hans.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.zh-Hans.xlf @@ -652,6 +652,11 @@ Document Identifier: '{0}'. -= 用法 =- + + Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default credentials when downloading service metadata. (Short Form: -{0}) + + Determines the amount of information displayed by the tool. Valid values are '{0}'. (Short Form: -{1}) 确定工具显示的信息量。有效值为“{0}”。(缩写: -{1}) diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.zh-Hant.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.zh-Hant.xlf index 5603b618e15..7713905ec81 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.zh-Hant.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.zh-Hant.xlf @@ -652,6 +652,11 @@ Document Identifier: '{0}'. -= 使用方式 =- + + Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default credentials when downloading service metadata. (Short Form: -{0}) + + Determines the amount of information displayed by the tool. Valid values are '{0}'. (Short Form: -{1}) 指定工作顯示的資訊量。有效值為 '{0}'。(簡短形式: -{1}) diff --git a/src/dotnet-svcutil/lib/tests/src/UnitTest.cs b/src/dotnet-svcutil/lib/tests/src/UnitTest.cs index 65d47aa3ab0..a0633fc2207 100644 --- a/src/dotnet-svcutil/lib/tests/src/UnitTest.cs +++ b/src/dotnet-svcutil/lib/tests/src/UnitTest.cs @@ -178,6 +178,38 @@ public void CommandParserInvalid(string testCaseName, string options) CommandOptions(testCaseName, options, serializeUpdateOptions: false, expectSuccess: false); } + [Trait("Category", "UnitTest")] + [Theory] + [InlineData("--useDefaultCredentials")] + [InlineData("-udc")] + public async Task UseDefaultCredentialsOption(string option) + { + this_TestCaseName = "UseDefaultCredentialsOption"; + TestFixture(); + InitializeUnitTest(option.TrimStart('-'), createProject: false, sdkVersion: g_SdkVersion); + + var cmdOptions = CommandParser.ParseCommand(new[] { "http://www.myhost.com/MyService.svc", option }); + await cmdOptions.ProcessBasicOptionsAsync(this_TestCaseLogger, CancellationToken.None); + + Assert.Empty(cmdOptions.Errors); + Assert.True(cmdOptions.UseDefaultCredentials); + } + + [Trait("Category", "UnitTest")] + [Fact] + public async Task UseDefaultCredentialsOptionDefaultsToFalse() + { + this_TestCaseName = "UseDefaultCredentialsOptionDefaultsToFalse"; + TestFixture(); + InitializeUnitTest(this_TestCaseName, createProject: false, sdkVersion: g_SdkVersion); + + var cmdOptions = CommandParser.ParseCommand(new[] { "http://www.myhost.com/MyService.svc" }); + await cmdOptions.ProcessBasicOptionsAsync(this_TestCaseLogger, CancellationToken.None); + + Assert.Empty(cmdOptions.Errors); + Assert.False(cmdOptions.UseDefaultCredentials); + } + [Trait("Category", "UnitTest")] [Theory] [InlineData("basicOptions1", "$testCasesDir$/wsdl/Simple.wsdl -tc global")] From 8ff5b62145ed2efed7dc04cc675e9ae9d9f4d483 Mon Sep 17 00:00:00 2001 From: Carol Wang Date: Mon, 25 May 2026 17:47:56 +0800 Subject: [PATCH 2/3] Add auth hint and improve help text for --useDefaultCredentials - Show informational note suggesting --useDefaultCredentials when credential prompt appears - Clarify help text: only use with trusted endpoints Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/dotnet-svcutil/lib/src/CmdCredentialsProvider.cs | 7 ++++++- src/dotnet-svcutil/lib/src/SR.resx | 5 ++++- src/dotnet-svcutil/lib/src/Tool.cs | 1 + src/dotnet-svcutil/lib/src/xlf/SR.cs.xlf | 9 +++++++-- src/dotnet-svcutil/lib/src/xlf/SR.de.xlf | 9 +++++++-- src/dotnet-svcutil/lib/src/xlf/SR.es.xlf | 9 +++++++-- src/dotnet-svcutil/lib/src/xlf/SR.fr.xlf | 9 +++++++-- src/dotnet-svcutil/lib/src/xlf/SR.it.xlf | 9 +++++++-- src/dotnet-svcutil/lib/src/xlf/SR.ja.xlf | 9 +++++++-- src/dotnet-svcutil/lib/src/xlf/SR.ko.xlf | 9 +++++++-- src/dotnet-svcutil/lib/src/xlf/SR.pl.xlf | 9 +++++++-- src/dotnet-svcutil/lib/src/xlf/SR.pt-BR.xlf | 9 +++++++-- src/dotnet-svcutil/lib/src/xlf/SR.ru.xlf | 9 +++++++-- src/dotnet-svcutil/lib/src/xlf/SR.tr.xlf | 9 +++++++-- src/dotnet-svcutil/lib/src/xlf/SR.zh-Hans.xlf | 9 +++++++-- src/dotnet-svcutil/lib/src/xlf/SR.zh-Hant.xlf | 9 +++++++-- 16 files changed, 102 insertions(+), 28 deletions(-) diff --git a/src/dotnet-svcutil/lib/src/CmdCredentialsProvider.cs b/src/dotnet-svcutil/lib/src/CmdCredentialsProvider.cs index 34254374fce..2c865c8d42e 100644 --- a/src/dotnet-svcutil/lib/src/CmdCredentialsProvider.cs +++ b/src/dotnet-svcutil/lib/src/CmdCredentialsProvider.cs @@ -45,6 +45,10 @@ private void ShowAuthenticationConsent() _authMessageShown = true; Console.WriteLine(); + if (!UseDefaultCredentials) + { + Console.WriteLine(SR.HintUseDefaultCredentials); + } Console.WriteLine(SR.WrnUserBasicCredentialsInClearText); PromptEnterOrEscape(throwOnEscape: true); } @@ -69,6 +73,7 @@ private X509Certificate2Collection Certificates } internal bool AcceptCert { get; set; } + internal bool UseDefaultCredentials { get; set; } public X509Certificate2Collection GetCertificates() { @@ -237,7 +242,7 @@ private bool PromptUserOnInvalidCert(X509Certificate cert, SslPolicyErrors sslPo public object Clone() { - return new CmdCredentialsProvider() { AcceptCert = AcceptCert }; + return new CmdCredentialsProvider() { AcceptCert = AcceptCert, UseDefaultCredentials = UseDefaultCredentials }; } #endregion diff --git a/src/dotnet-svcutil/lib/src/SR.resx b/src/dotnet-svcutil/lib/src/SR.resx index 77ffae99092..34de9a9d33f 100644 --- a/src/dotnet-svcutil/lib/src/SR.resx +++ b/src/dotnet-svcutil/lib/src/SR.resx @@ -623,7 +623,10 @@ Your credentials will be sent to the server in clear text. Accept remote certificate as trusted when downloading service metadata. (Short Form: -{0}) - Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) + + + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. Generate code for Service Contracts. Client class will not be generated. (Short Form: -{0}) diff --git a/src/dotnet-svcutil/lib/src/Tool.cs b/src/dotnet-svcutil/lib/src/Tool.cs index 7ad9fd7bb24..185d84b59b6 100644 --- a/src/dotnet-svcutil/lib/src/Tool.cs +++ b/src/dotnet-svcutil/lib/src/Tool.cs @@ -200,6 +200,7 @@ internal static async Task RunAsync(CommandProcessorOptions option ImportModule importModule = null; var credsProvider = new CmdCredentialsProvider(); credsProvider.AcceptCert = options.AcceptCert.Value; + credsProvider.UseDefaultCredentials = options.UseDefaultCredentials.Value; ServiceDescriptor serviceDescriptor = options.Inputs.Count == 1 ? new ServiceDescriptor(options.Inputs[0].ToString(), credsProvider, credsProvider, credsProvider, options.UseDefaultCredentials.Value) : diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.cs.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.cs.xlf index 50559f60f59..6461dfb7f02 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.cs.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.cs.xlf @@ -653,8 +653,8 @@ Identifikátor dokumentu: {0} - Use default credentials when downloading service metadata. (Short Form: -{0}) - Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) @@ -672,6 +672,11 @@ Identifikátor dokumentu: {0} Generování datových typů, které k serializaci a deserializaci používají XmlSerializer + + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + + Microsoft (R) WCF Service Model Proxy Generation Tool for .Net Core platform [{0}, Version {1}] diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.de.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.de.xlf index afa68527725..cf18a9e2f9b 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.de.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.de.xlf @@ -653,8 +653,8 @@ Dokumentbezeichner: "{0}". - Use default credentials when downloading service metadata. (Short Form: -{0}) - Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) @@ -672,6 +672,11 @@ Dokumentbezeichner: "{0}". Datentypen generieren, die den XmlSerializer zum Serialisieren und Deserialisieren verwenden. + + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + + Microsoft (R) WCF Service Model Proxy Generation Tool for .Net Core platform [{0}, Version {1}] diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.es.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.es.xlf index 5e93bb03fd0..ab1a22d7cac 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.es.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.es.xlf @@ -653,8 +653,8 @@ Identificador del documento: "{0}". - Use default credentials when downloading service metadata. (Short Form: -{0}) - Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) @@ -672,6 +672,11 @@ Identificador del documento: "{0}". Generar tipos de datos que utilicen XmlSerializer para la serialización y la deserialización + + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + + Microsoft (R) WCF Service Model Proxy Generation Tool for .Net Core platform [{0}, Version {1}] diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.fr.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.fr.xlf index d8283191380..0e20d0b3ac7 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.fr.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.fr.xlf @@ -653,8 +653,8 @@ Identificateur de document : '{0}'. - Use default credentials when downloading service metadata. (Short Form: -{0}) - Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) @@ -672,6 +672,11 @@ Identificateur de document : '{0}'. Générer des types de données qui utilisent le XmlSerializer pour la sérialisation et la désérialisation + + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + + Microsoft (R) WCF Service Model Proxy Generation Tool for .Net Core platform [{0}, Version {1}] diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.it.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.it.xlf index 997d23914f1..52206d94e17 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.it.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.it.xlf @@ -653,8 +653,8 @@ Identificatore di documento: '{0}'. - Use default credentials when downloading service metadata. (Short Form: -{0}) - Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) @@ -672,6 +672,11 @@ Identificatore di documento: '{0}'. Genera tipi di dati che usano XmlSerializer per la serializzazione e la deserializzazione + + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + + Microsoft (R) WCF Service Model Proxy Generation Tool for .Net Core platform [{0}, Version {1}] diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.ja.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.ja.xlf index ff71509f675..baf013d5cb2 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.ja.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.ja.xlf @@ -653,8 +653,8 @@ Document Identifier: '{0}'. - Use default credentials when downloading service metadata. (Short Form: -{0}) - Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) @@ -672,6 +672,11 @@ Document Identifier: '{0}'. シリアル化およびシリアル化の解除に XmlSerializer を使用するデータ型を生成します + + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + + Microsoft (R) WCF Service Model Proxy Generation Tool for .Net Core platform [{0}, Version {1}] diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.ko.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.ko.xlf index e4903d4bd3e..b951abc7dc3 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.ko.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.ko.xlf @@ -653,8 +653,8 @@ Document Identifier: '{0}'. - Use default credentials when downloading service metadata. (Short Form: -{0}) - Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) @@ -672,6 +672,11 @@ Document Identifier: '{0}'. serialization 및 deserialization을 위해 XmlSerializer를 사용하는 데이터 형식을 생성합니다. + + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + + Microsoft (R) WCF Service Model Proxy Generation Tool for .Net Core platform [{0}, Version {1}] diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.pl.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.pl.xlf index 8eed830746c..61bfd49c5d7 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.pl.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.pl.xlf @@ -653,8 +653,8 @@ Identyfikator dokumentu: „{0}”. - Use default credentials when downloading service metadata. (Short Form: -{0}) - Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) @@ -672,6 +672,11 @@ Identyfikator dokumentu: „{0}”. Generuj typy danych używające serializatora XmlSerializer w ramach serializacji i deserializacji + + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + + Microsoft (R) WCF Service Model Proxy Generation Tool for .Net Core platform [{0}, Version {1}] diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.pt-BR.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.pt-BR.xlf index 0525e22b701..b550400cc4b 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.pt-BR.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.pt-BR.xlf @@ -653,8 +653,8 @@ Identificador do Documento: '{0}'. - Use default credentials when downloading service metadata. (Short Form: -{0}) - Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) @@ -672,6 +672,11 @@ Identificador do Documento: '{0}'. Gerar tipos de dados que usam o XmlSerializer para serialização e desserialização + + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + + Microsoft (R) WCF Service Model Proxy Generation Tool for .Net Core platform [{0}, Version {1}] diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.ru.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.ru.xlf index 1a2630fd4b6..6c99a2764d3 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.ru.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.ru.xlf @@ -653,8 +653,8 @@ Document Identifier: '{0}'. - Use default credentials when downloading service metadata. (Short Form: -{0}) - Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) @@ -672,6 +672,11 @@ Document Identifier: '{0}'. Формирование типов данных, использующих сериализатор XmlSerializer для сериализации и десериализации + + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + + Microsoft (R) WCF Service Model Proxy Generation Tool for .Net Core platform [{0}, Version {1}] diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.tr.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.tr.xlf index 2f7ecef6fa7..3a03ab1567e 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.tr.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.tr.xlf @@ -653,8 +653,8 @@ Belge Tanımlayıcısı: '{0}'. - Use default credentials when downloading service metadata. (Short Form: -{0}) - Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) @@ -672,6 +672,11 @@ Belge Tanımlayıcısı: '{0}'. Serileştirme ve seri durumdan çıkarma için XmlSerializer'ı kullanan veri türleri oluşturma + + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + + Microsoft (R) WCF Service Model Proxy Generation Tool for .Net Core platform [{0}, Version {1}] diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.zh-Hans.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.zh-Hans.xlf index 6260e93a06f..72fff0a6bc3 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.zh-Hans.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.zh-Hans.xlf @@ -653,8 +653,8 @@ Document Identifier: '{0}'. - Use default credentials when downloading service metadata. (Short Form: -{0}) - Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) @@ -672,6 +672,11 @@ Document Identifier: '{0}'. 生成使用 XmlSerializer 进行序列化和反序列化的数据类型。 + + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + + Microsoft (R) WCF Service Model Proxy Generation Tool for .Net Core platform [{0}, Version {1}] diff --git a/src/dotnet-svcutil/lib/src/xlf/SR.zh-Hant.xlf b/src/dotnet-svcutil/lib/src/xlf/SR.zh-Hant.xlf index 7713905ec81..ae9add4971b 100644 --- a/src/dotnet-svcutil/lib/src/xlf/SR.zh-Hant.xlf +++ b/src/dotnet-svcutil/lib/src/xlf/SR.zh-Hant.xlf @@ -653,8 +653,8 @@ Document Identifier: '{0}'. - Use default credentials when downloading service metadata. (Short Form: -{0}) - Use default credentials when downloading service metadata. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) + Use default system credentials when downloading service metadata. Only use with trusted endpoints. (Short Form: -{0}) @@ -672,6 +672,11 @@ Document Identifier: '{0}'. 產生使用 XmlSerializer 進行序列化與還原序列化的資料類型。 + + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + Note: You can also use --useDefaultCredentials (-udc) to use system credentials instead of entering them manually. + + Microsoft (R) WCF Service Model Proxy Generation Tool for .Net Core platform [{0}, Version {1}] From b5e0e7aeaf9c1bf1d2c6901c6d606d62171480c6 Mon Sep 17 00:00:00 2001 From: Carol Wang Date: Tue, 21 Jul 2026 09:04:36 +0800 Subject: [PATCH 3/3] Fix inconsist indentation. --- src/dotnet-svcutil/lib/src/HelpGenerator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dotnet-svcutil/lib/src/HelpGenerator.cs b/src/dotnet-svcutil/lib/src/HelpGenerator.cs index b67a9c16e16..bad6d5a4ca6 100644 --- a/src/dotnet-svcutil/lib/src/HelpGenerator.cs +++ b/src/dotnet-svcutil/lib/src/HelpGenerator.cs @@ -71,7 +71,7 @@ private static void WriteCodeGenerationHelp() ArgumentInfo.CreateParameterHelpInfo(CommandProcessorOptions.Switches.RuntimeIdentifier.Name, SR.ParametersRuntimeIdentifier, string.Format(SR.HelpRuntimeIdentifierFormat, CommandProcessorOptions.Switches.RuntimeIdentifier.Abbreviation)), ArgumentInfo.CreateParameterHelpInfo(CommandProcessorOptions.Switches.TargetFramework.Name, SR.ParametersTargetFramework, string.Format(SR.HelpTargetFrameworkFormat, CommandProcessorOptions.Switches.TargetFramework.Abbreviation)), ArgumentInfo.CreateFlagHelpInfo( CommandProcessorOptions.Switches.AcceptCertificate.Name, string.Format(SR.HelpAcceptCertificateFormat, CommandProcessorOptions.Switches.AcceptCertificate.Abbreviation)), - ArgumentInfo.CreateFlagHelpInfo( CommandProcessorOptions.Switches.UseDefaultCredentials.Name, string.Format(SR.HelpUseDefaultCredentialsFormat, CommandProcessorOptions.Switches.UseDefaultCredentials.Abbreviation)), + ArgumentInfo.CreateFlagHelpInfo( CommandProcessorOptions.Switches.UseDefaultCredentials.Name, string.Format(SR.HelpUseDefaultCredentialsFormat, CommandProcessorOptions.Switches.UseDefaultCredentials.Abbreviation)), ArgumentInfo.CreateFlagHelpInfo( CommandProcessorOptions.Switches.ServiceContract.Name, string.Format(SR.HelpServiceContractFormat, CommandProcessorOptions.Switches.ServiceContract.Abbreviation)), ArgumentInfo.CreateFlagHelpInfo( CommandProcessorOptions.Switches.Language.Name, string.Format(SR.HelpLanguage, CommandProcessorOptions.Switches.Language.Abbreviation)) }