From b5eee5c2ff039d65729976347d01757f2a273755 Mon Sep 17 00:00:00 2001 From: James Newton-King <james@newtonking.com> Date: Wed, 20 Apr 2022 07:33:11 +0800 Subject: [PATCH] Place XML comment hrefs in see elements (#41254) --- .../ProtectedLocalStorage.cs | 2 +- .../ProtectedSessionStorage.cs | 2 +- .../src/Http/BrowserRequestCache.cs | 2 +- ...WebAssemblyHttpRequestMessageExtensions.cs | 14 +++++----- .../Services/DefaultWebAssemblyJSRuntime.cs | 2 +- .../src/DataProtectionBuilderExtensions.cs | 6 ++--- .../DpapiNGProtectionDescriptorFlags.cs | 2 +- .../JsonPatch/src/Adapters/IObjectAdapter.cs | 10 +++---- .../src/Adapters/IObjectAdapterWithTest.cs | 2 +- .../src/HtmlFormattableString.cs | 2 +- .../Headers/src/CacheControlHeaderValue.cs | 26 +++++++++---------- .../src/ContentDispositionHeaderValue.cs | 2 +- src/Http/Headers/src/EntityTagHeaderValue.cs | 4 +-- src/Http/Headers/src/MediaTypeHeaderValue.cs | 4 +-- src/Http/Headers/src/SameSiteMode.cs | 2 +- src/Http/Headers/src/SetCookieHeaderValue.cs | 14 +++++----- .../Http.Extensions/src/ProblemDetails.cs | 2 +- .../Http.Features/src/IHttpRequestFeature.cs | 2 +- .../src/ITlsTokenBindingFeature.cs | 2 +- src/Http/Http.Features/src/SameSiteMode.cs | 2 +- .../Http.Results/src/ProblemHttpResult.cs | 2 +- .../Routing/src/Internal/DfaGraphWriter.cs | 4 +-- .../Polly/src/PolicyHttpMessageHandler.cs | 12 ++++----- .../HttpsPolicy/src/HstsMiddleware.cs | 2 +- src/Middleware/HttpsPolicy/src/HstsOptions.cs | 4 +-- .../src/ModelBinding/ModelMetadata.cs | 4 +-- .../Mvc.Razor/src/RazorViewEngineOptions.cs | 8 +++--- src/Mvc/Mvc.TagHelpers/src/InputTagHelper.cs | 2 +- .../Rendering/HtmlHelperInputExtensions.cs | 4 +-- .../Rendering/HtmlHelperValueExtensions.cs | 2 +- .../src/Rendering/IHtmlHelper.cs | 6 ++--- .../src/Rendering/IHtmlHelperOfT.cs | 4 +-- .../src/Rendering/TagBuilder.cs | 2 +- .../src/ViewDataDictionary.cs | 4 +-- .../CertificateAuthenticationExtensions.cs | 10 +++---- .../Facebook/src/FacebookDefaults.cs | 2 +- .../Facebook/src/FacebookOptions.cs | 4 +-- .../Google/src/GoogleDefaults.cs | 4 +-- .../src/MicrosoftAccountDefaults.cs | 2 +- .../src/MicrosoftChallengeProperties.cs | 2 +- .../OAuth/src/OAuthConstants.cs | 8 +++--- .../Authentication/OAuth/src/OAuthOptions.cs | 2 +- .../OpenIdConnect/src/OpenIdConnectOptions.cs | 2 +- .../Twitter/src/TwitterOptions.cs | 2 +- .../HttpSys/src/IHttpSysRequestInfoFeature.cs | 4 +-- src/Servers/IIS/IIS/src/StartupHook.cs | 4 +-- .../Kestrel/Core/src/KestrelServerOptions.cs | 6 ++--- .../Http.Connections/src/WebSocketOptions.cs | 2 +- 48 files changed, 109 insertions(+), 109 deletions(-) diff --git a/src/Components/Server/src/ProtectedBrowserStorage/ProtectedLocalStorage.cs b/src/Components/Server/src/ProtectedBrowserStorage/ProtectedLocalStorage.cs index 740071c7721..eca79fde0c0 100644 --- a/src/Components/Server/src/ProtectedBrowserStorage/ProtectedLocalStorage.cs +++ b/src/Components/Server/src/ProtectedBrowserStorage/ProtectedLocalStorage.cs @@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage; /// This data will be scoped to the current user's browser, shared across /// all tabs. The data will persist across browser restarts. /// -/// See: https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage +/// See: <see href="https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage"/>. /// </summary> public sealed class ProtectedLocalStorage : ProtectedBrowserStorage { diff --git a/src/Components/Server/src/ProtectedBrowserStorage/ProtectedSessionStorage.cs b/src/Components/Server/src/ProtectedBrowserStorage/ProtectedSessionStorage.cs index b404ce7d4b4..4a6d395931a 100644 --- a/src/Components/Server/src/ProtectedBrowserStorage/ProtectedSessionStorage.cs +++ b/src/Components/Server/src/ProtectedBrowserStorage/ProtectedSessionStorage.cs @@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage; /// This data will be scoped to the current browser tab. The data will be /// discarded if the user closes the browser tab or closes the browser itself. /// -/// See: https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage +/// See: <see href="https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage"/>. /// </summary> public sealed class ProtectedSessionStorage : ProtectedBrowserStorage { diff --git a/src/Components/WebAssembly/WebAssembly/src/Http/BrowserRequestCache.cs b/src/Components/WebAssembly/WebAssembly/src/Http/BrowserRequestCache.cs index 3b3c48642c4..78a934c3c63 100644 --- a/src/Components/WebAssembly/WebAssembly/src/Http/BrowserRequestCache.cs +++ b/src/Components/WebAssembly/WebAssembly/src/Http/BrowserRequestCache.cs @@ -5,7 +5,7 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Http; /// <summary> /// The cache mode of the request. It controls how the request will interact with the browser's HTTP cache. -/// See https://developer.mozilla.org/en-US/docs/Web/API/Request/cache +/// See <see href="https://developer.mozilla.org/en-US/docs/Web/API/Request/cache"/>. /// </summary> public enum BrowserRequestCache { diff --git a/src/Components/WebAssembly/WebAssembly/src/Http/WebAssemblyHttpRequestMessageExtensions.cs b/src/Components/WebAssembly/WebAssembly/src/Http/WebAssemblyHttpRequestMessageExtensions.cs index 0ed2aa2ce00..73b43614de1 100644 --- a/src/Components/WebAssembly/WebAssembly/src/Http/WebAssemblyHttpRequestMessageExtensions.cs +++ b/src/Components/WebAssembly/WebAssembly/src/Http/WebAssemblyHttpRequestMessageExtensions.cs @@ -20,7 +20,7 @@ public static class WebAssemblyHttpRequestMessageExtensions /// <param name="requestCredentials">The <see cref="BrowserRequestCredentials"/> option.</param> /// <returns>The <see cref="HttpRequestMessage"/>.</returns> /// <remarks> - /// See https://developer.mozilla.org/en-US/docs/Web/API/Request/credentials + /// See <see href="https://developer.mozilla.org/en-US/docs/Web/API/Request/credentials"/>. /// </remarks> public static HttpRequestMessage SetBrowserRequestCredentials(this HttpRequestMessage requestMessage, BrowserRequestCredentials requestCredentials) { @@ -47,7 +47,7 @@ public static class WebAssemblyHttpRequestMessageExtensions /// <param name="requestCache">The <see cref="BrowserRequestCache"/> option.</param> /// <returns>The <see cref="HttpRequestMessage"/>.</returns>\ /// <remarks> - /// See https://developer.mozilla.org/en-US/docs/Web/API/Request/cache + /// See <see href="https://developer.mozilla.org/en-US/docs/Web/API/Request/cache"/>. /// </remarks> public static HttpRequestMessage SetBrowserRequestCache(this HttpRequestMessage requestMessage, BrowserRequestCache requestCache) { @@ -77,7 +77,7 @@ public static class WebAssemblyHttpRequestMessageExtensions /// <param name="requestMode">The <see cref="BrowserRequestMode"/>.</param> /// <returns>The <see cref="HttpRequestMessage"/>.</returns>\ /// <remarks> - /// See https://developer.mozilla.org/en-US/docs/Web/API/Request/mode + /// See <see href="https://developer.mozilla.org/en-US/docs/Web/API/Request/mode"/>. /// </remarks> public static HttpRequestMessage SetBrowserRequestMode(this HttpRequestMessage requestMessage, BrowserRequestMode requestMode) { @@ -105,7 +105,7 @@ public static class WebAssemblyHttpRequestMessageExtensions /// <param name="integrity">The subresource integrity descriptor.</param> /// <returns>The <see cref="HttpRequestMessage"/>.</returns> /// <remarks> - /// See https://developer.mozilla.org/en-US/docs/Web/API/Request/integrity + /// See <see href="https://developer.mozilla.org/en-US/docs/Web/API/Request/integrity"/>. /// </remarks> public static HttpRequestMessage SetBrowserRequestIntegrity(this HttpRequestMessage requestMessage, string integrity) => SetBrowserRequestOption(requestMessage, "integrity", integrity); @@ -114,11 +114,11 @@ public static class WebAssemblyHttpRequestMessageExtensions /// Configures a value for the HTTP request. /// </summary> /// <param name="requestMessage">The <see cref="HttpRequestMessage"/>.</param> - /// <param name="name">The name of the option, which should correspond to a key defined on https://fetch.spec.whatwg.org/#requestinit</param> + /// <param name="name">The name of the option, which should correspond to a key defined on <see href="https://fetch.spec.whatwg.org/#requestinit"/>.</param> /// <param name="value">The value, which must be JSON-serializable.</param> /// <returns>The <see cref="HttpRequestMessage"/>.</returns> /// <remarks> - /// See https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch + /// See <see href="https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch"/>. /// </remarks> public static HttpRequestMessage SetBrowserRequestOption(this HttpRequestMessage requestMessage, string name, object value) { @@ -151,7 +151,7 @@ public static class WebAssemblyHttpRequestMessageExtensions /// <returns>The <see cref="HttpRequestMessage"/>.</returns> /// <remarks> /// This API is only effective when the browser HTTP Fetch supports streaming. - /// See https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream. + /// See <see href="https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream"/>. /// </remarks> public static HttpRequestMessage SetBrowserResponseStreamingEnabled(this HttpRequestMessage requestMessage, bool streamingEnabled) { diff --git a/src/Components/WebAssembly/WebAssembly/src/Services/DefaultWebAssemblyJSRuntime.cs b/src/Components/WebAssembly/WebAssembly/src/Services/DefaultWebAssemblyJSRuntime.cs index 768babb126d..f544f4a8568 100644 --- a/src/Components/WebAssembly/WebAssembly/src/Services/DefaultWebAssemblyJSRuntime.cs +++ b/src/Components/WebAssembly/WebAssembly/src/Services/DefaultWebAssemblyJSRuntime.cs @@ -81,7 +81,7 @@ internal sealed class DefaultWebAssemblyJSRuntime : WebAssemblyJSRuntime /// Notifies .NET of an array that's available for transfer from JS to .NET /// /// Ideally that byte array would be transferred directly as a parameter on this - /// call, however that's not currently possible due to: https://github.com/dotnet/runtime/issues/53378 + /// call, however that's not currently possible due to: <see href="https://github.com/dotnet/runtime/issues/53378"/>. /// </summary> /// <param name="id">Id of the byte array</param> public static void NotifyByteArrayAvailable(int id) diff --git a/src/DataProtection/DataProtection/src/DataProtectionBuilderExtensions.cs b/src/DataProtection/DataProtection/src/DataProtectionBuilderExtensions.cs index 41b8bd036dc..6f7c39b39f8 100644 --- a/src/DataProtection/DataProtection/src/DataProtectionBuilderExtensions.cs +++ b/src/DataProtection/DataProtection/src/DataProtectionBuilderExtensions.cs @@ -409,7 +409,7 @@ public static class DataProtectionBuilderExtensions /// <param name="builder">The <see cref="IDataProtectionBuilder"/>.</param> /// <returns>A reference to the <see cref="IDataProtectionBuilder" /> after this operation has completed.</returns> /// <remarks> - /// See https://msdn.microsoft.com/en-us/library/windows/desktop/hh706794(v=vs.85).aspx + /// See <see href="https://msdn.microsoft.com/en-us/library/windows/desktop/hh706794(v=vs.85).aspx"/> /// for more information on DPAPI-NG. This API is only supported on Windows 8 / Windows Server 2012 and higher. /// </remarks> [SupportedOSPlatform("windows")] @@ -434,8 +434,8 @@ public static class DataProtectionBuilderExtensions /// The default value of this parameter is <see cref="DpapiNGProtectionDescriptorFlags.None"/>.</param> /// <returns>A reference to the <see cref="IDataProtectionBuilder" /> after this operation has completed.</returns> /// <remarks> - /// See https://msdn.microsoft.com/en-us/library/windows/desktop/hh769091(v=vs.85).aspx - /// and https://msdn.microsoft.com/en-us/library/windows/desktop/hh706800(v=vs.85).aspx + /// See <see href="https://msdn.microsoft.com/en-us/library/windows/desktop/hh769091(v=vs.85).aspx"/> + /// and <see href="https://msdn.microsoft.com/en-us/library/windows/desktop/hh706800(v=vs.85).aspx"/> /// for more information on valid values for the the <paramref name="protectionDescriptorRule"/> /// and <paramref name="flags"/> arguments. /// This API is only supported on Windows 8 / Windows Server 2012 and higher. diff --git a/src/DataProtection/DataProtection/src/XmlEncryption/DpapiNGProtectionDescriptorFlags.cs b/src/DataProtection/DataProtection/src/XmlEncryption/DpapiNGProtectionDescriptorFlags.cs index 9b05bd36414..5fd093f0268 100644 --- a/src/DataProtection/DataProtection/src/XmlEncryption/DpapiNGProtectionDescriptorFlags.cs +++ b/src/DataProtection/DataProtection/src/XmlEncryption/DpapiNGProtectionDescriptorFlags.cs @@ -10,7 +10,7 @@ namespace Microsoft.AspNetCore.DataProtection.XmlEncryption; /// </summary> /// <remarks> /// These values correspond to the 'dwFlags' parameter on NCryptCreateProtectionDescriptor. -/// See https://msdn.microsoft.com/en-us/library/windows/desktop/hh706800(v=vs.85).aspx for more information. +/// See <see href="https://msdn.microsoft.com/en-us/library/windows/desktop/hh706800(v=vs.85).aspx"/> for more information. /// </remarks> [Flags] public enum DpapiNGProtectionDescriptorFlags diff --git a/src/Features/JsonPatch/src/Adapters/IObjectAdapter.cs b/src/Features/JsonPatch/src/Adapters/IObjectAdapter.cs index 14d8b631902..ea74eaee8d9 100644 --- a/src/Features/JsonPatch/src/Adapters/IObjectAdapter.cs +++ b/src/Features/JsonPatch/src/Adapters/IObjectAdapter.cs @@ -28,7 +28,7 @@ public interface IObjectAdapter /// /// { "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] } /// - /// See RFC 6902 https://tools.ietf.org/html/rfc6902#page-4 + /// See RFC 6902 <see href="https://tools.ietf.org/html/rfc6902#page-4"/> /// </summary> /// <param name="operation">The add operation.</param> /// <param name="objectToApplyTo">Object to apply the operation to.</param> @@ -47,7 +47,7 @@ public interface IObjectAdapter /// /// { "op": "copy", "from": "/a/b/c", "path": "/a/b/e" } /// - /// See RFC 6902 https://tools.ietf.org/html/rfc6902#page-7 + /// See RFC 6902 <see href="https://tools.ietf.org/html/rfc6902#page-7"/> /// </summary> /// <param name="operation">The copy operation.</param> /// <param name="objectToApplyTo">Object to apply the operation to.</param> @@ -68,7 +68,7 @@ public interface IObjectAdapter /// /// A location cannot be moved into one of its children. /// - /// See RFC 6902 https://tools.ietf.org/html/rfc6902#page-6 + /// See RFC 6902 <see href="https://tools.ietf.org/html/rfc6902#page-6"/> /// </summary> /// <param name="operation">The move operation.</param> /// <param name="objectToApplyTo">Object to apply the operation to.</param> @@ -86,7 +86,7 @@ public interface IObjectAdapter /// If removing an element from an array, any elements above the /// specified index are shifted one position to the left. /// - /// See RFC 6902 https://tools.ietf.org/html/rfc6902#page-6 + /// See RFC 6902 <see href="https://tools.ietf.org/html/rfc6902#page-6"/> /// </summary> /// <param name="operation">The remove operation.</param> /// <param name="objectToApplyTo">Object to apply the operation to.</param> @@ -103,7 +103,7 @@ public interface IObjectAdapter /// /// { "op": "replace", "path": "/a/b/c", "value": 42 } /// - /// See RFC 6902 https://tools.ietf.org/html/rfc6902#page-6 + /// See RFC 6902 <see href="https://tools.ietf.org/html/rfc6902#page-6"/> /// </summary> /// <param name="operation">The replace operation.</param> /// <param name="objectToApplyTo">Object to apply the operation to.</param> diff --git a/src/Features/JsonPatch/src/Adapters/IObjectAdapterWithTest.cs b/src/Features/JsonPatch/src/Adapters/IObjectAdapterWithTest.cs index be6264537d5..dece8523a0d 100644 --- a/src/Features/JsonPatch/src/Adapters/IObjectAdapterWithTest.cs +++ b/src/Features/JsonPatch/src/Adapters/IObjectAdapterWithTest.cs @@ -23,7 +23,7 @@ public interface IObjectAdapterWithTest : IObjectAdapter /// For example: /// { "op": "test", "path": "/a/b/c", "value": "foo" } /// - /// See RFC 6902 https://tools.ietf.org/html/rfc6902#page-7 + /// See RFC 6902 <see href="https://tools.ietf.org/html/rfc6902#page-7"/> /// </summary> /// <param name="operation">The test operation.</param> /// <param name="objectToApplyTo">Object to apply the operation to.</param> diff --git a/src/Html.Abstractions/src/HtmlFormattableString.cs b/src/Html.Abstractions/src/HtmlFormattableString.cs index 3c5d234c690..5bbc6219966 100644 --- a/src/Html.Abstractions/src/HtmlFormattableString.cs +++ b/src/Html.Abstractions/src/HtmlFormattableString.cs @@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Html; /// <summary> /// An <see cref="IHtmlContent"/> implementation of composite string formatting -/// (see https://msdn.microsoft.com/en-us/library/txafckwd(v=vs.110).aspx) which HTML encodes +/// (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd(v=vs.110).aspx"/>) which HTML encodes /// formatted arguments. /// </summary> [DebuggerDisplay("{DebuggerToString()}")] diff --git a/src/Http/Headers/src/CacheControlHeaderValue.cs b/src/Http/Headers/src/CacheControlHeaderValue.cs index 3c9d1ac5481..e807a82b323 100644 --- a/src/Http/Headers/src/CacheControlHeaderValue.cs +++ b/src/Http/Headers/src/CacheControlHeaderValue.cs @@ -116,7 +116,7 @@ public class CacheControlHeaderValue /// before using it. /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc7234#section-5.2.1.4</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc7234#section-5.2.1.4"/>.</remarks> public bool NoCache { get { return _noCache; } @@ -144,7 +144,7 @@ public class CacheControlHeaderValue /// Configuring no-store indicates that the response may not be stored in any cache. /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc7234#section-5.2.1.5</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc7234#section-5.2.1.5"/>.</remarks> public bool NoStore { get { return _noStore; } @@ -157,7 +157,7 @@ public class CacheControlHeaderValue /// max-age specifies the maximum amount of time the response is considered fresh. /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc7234#section-5.2.1.1</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc7234#section-5.2.1.1"/>.</remarks> public TimeSpan? MaxAge { get { return _maxAge; } @@ -170,7 +170,7 @@ public class CacheControlHeaderValue /// Overrides <see cref="MaxAge">max-age</see>, but only for shared caches (such as proxies). /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc7234#section-5.2.2.9</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc7234#section-5.2.2.9"/>.</remarks> public TimeSpan? SharedMaxAge { get { return _sharedMaxAge; } @@ -184,7 +184,7 @@ public class CacheControlHeaderValue /// is specified by <see cref="MaxStaleLimit"/>. /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc7234#section-5.2.1.2</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc7234#section-5.2.1.2"/>.</remarks> public bool MaxStale { get { return _maxStale; } @@ -197,7 +197,7 @@ public class CacheControlHeaderValue /// Indicates the maximum duration an HTTP client is willing to accept a response that has exceeded its expiration time. /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc7234#section-5.2.1.2</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc7234#section-5.2.1.2"/>.</remarks> public TimeSpan? MaxStaleLimit { get { return _maxStaleLimit; } @@ -210,7 +210,7 @@ public class CacheControlHeaderValue /// Indicates the freshness lifetime that an HTTP client is willing to accept a response. /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc7234#section-5.2.1.3</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc7234#section-5.2.1.3"/>.</remarks> public TimeSpan? MinFresh { get { return _minFresh; } @@ -223,7 +223,7 @@ public class CacheControlHeaderValue /// Forbids intermediate caches or proxies from editing the response payload. /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc7234#section-5.2.1.6</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc7234#section-5.2.1.6"/>.</remarks> public bool NoTransform { get { return _noTransform; } @@ -236,7 +236,7 @@ public class CacheControlHeaderValue /// Indicates that the client only wishes to obtain a stored response /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc7234#section-5.2.1.7</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc7234#section-5.2.1.7"/>.</remarks> public bool OnlyIfCached { get { return _onlyIfCached; } @@ -249,7 +249,7 @@ public class CacheControlHeaderValue /// Indicates that the response may be stored by any cache. /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc7234#section-5.2.2.5</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc7234#section-5.2.2.5"/>.</remarks> public bool Public { get { return _public; } @@ -262,7 +262,7 @@ public class CacheControlHeaderValue /// Indicates that the response may not be stored by a shared cache. /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc7234#section-5.2.2.6</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc7234#section-5.2.2.6"/>.</remarks> public bool Private { get { return _private; } @@ -290,7 +290,7 @@ public class CacheControlHeaderValue /// Indicates that caches must revalidate the use of stale caches with the origin server before their use. /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc7234#section-5.2.2.1</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc7234#section-5.2.2.1"/>.</remarks> public bool MustRevalidate { get { return _mustRevalidate; } @@ -303,7 +303,7 @@ public class CacheControlHeaderValue /// Indicates that shared caches must revalidate the use of stale caches with the origin server before their use. /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc7234#section-5.2.2.1</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc7234#section-5.2.2.1"/>.</remarks> public bool ProxyRevalidate { get { return _proxyRevalidate; } diff --git a/src/Http/Headers/src/ContentDispositionHeaderValue.cs b/src/Http/Headers/src/ContentDispositionHeaderValue.cs index e01b527e118..e0f0f990642 100644 --- a/src/Http/Headers/src/ContentDispositionHeaderValue.cs +++ b/src/Http/Headers/src/ContentDispositionHeaderValue.cs @@ -17,7 +17,7 @@ namespace Microsoft.Net.Http.Headers; /// Represents the value of a <c>Content-Disposition</c> header. /// </summary> /// <remarks> -/// Note this is for use both in HTTP (https://tools.ietf.org/html/rfc6266) and MIME (https://tools.ietf.org/html/rfc2183) +/// Note this is for use both in HTTP (<see href="https://tools.ietf.org/html/rfc6266"/>) and MIME (<see href="https://tools.ietf.org/html/rfc2183"/>). /// </remarks> public class ContentDispositionHeaderValue { diff --git a/src/Http/Headers/src/EntityTagHeaderValue.cs b/src/Http/Headers/src/EntityTagHeaderValue.cs index 7c105671ad7..cd94d31a9f7 100644 --- a/src/Http/Headers/src/EntityTagHeaderValue.cs +++ b/src/Http/Headers/src/EntityTagHeaderValue.cs @@ -96,7 +96,7 @@ public class EntityTagHeaderValue /// <summary> /// Check against another <see cref="EntityTagHeaderValue"/> for equality. - /// This equality check should not be used to determine if two values match under the RFC specifications (https://tools.ietf.org/html/rfc7232#section-2.3.2). + /// This equality check should not be used to determine if two values match under the RFC specifications (<see href="https://tools.ietf.org/html/rfc7232#section-2.3.2"/>). /// </summary> /// <param name="obj">The other value to check against for equality.</param> /// <returns> @@ -117,7 +117,7 @@ public class EntityTagHeaderValue } /// <summary> - /// Compares against another <see cref="EntityTagHeaderValue"/> to see if they match under the RFC specifications (https://tools.ietf.org/html/rfc7232#section-2.3.2). + /// Compares against another <see cref="EntityTagHeaderValue"/> to see if they match under the RFC specifications (<see href="https://tools.ietf.org/html/rfc7232#section-2.3.2"/>). /// </summary> /// <param name="other">The other <see cref="EntityTagHeaderValue"/> to compare against.</param> /// <param name="useStrongComparison"><c>true</c> to use a strong comparison, <c>false</c> to use a weak comparison</param> diff --git a/src/Http/Headers/src/MediaTypeHeaderValue.cs b/src/Http/Headers/src/MediaTypeHeaderValue.cs index 60e823eba44..13019ddda00 100644 --- a/src/Http/Headers/src/MediaTypeHeaderValue.cs +++ b/src/Http/Headers/src/MediaTypeHeaderValue.cs @@ -370,7 +370,7 @@ public class MediaTypeHeaderValue /// <summary> /// Gets a value indicating whether this <see cref="MediaTypeHeaderValue"/> is a subset of /// <paramref name="otherMediaType"/>. A "subset" is defined as the same or a more specific media type - /// according to the precedence described in https://www.ietf.org/rfc/rfc2068.txt section 14.1, Accept. + /// according to the precedence described in <see href="https://www.ietf.org/rfc/rfc2068.txt"/> section 14.1, Accept. /// </summary> /// <param name="otherMediaType">The <see cref="MediaTypeHeaderValue"/> to compare.</param> /// <returns> @@ -439,7 +439,7 @@ public class MediaTypeHeaderValue /// <summary> /// Gets a value indicating whether <paramref name="otherMediaType"/> is a subset of /// this <see cref="MediaTypeHeaderValue"/> in terms of type/subType. A "subset" is defined as the same or a more specific media type - /// according to the precedence described in https://www.ietf.org/rfc/rfc2068.txt section 14.1, Accept. + /// according to the precedence described in <see href="https://www.ietf.org/rfc/rfc2068.txt"/> section 14.1, Accept. /// </summary> /// <param name="otherMediaType">The <see cref="StringSegment"/> to compare.</param> /// <returns> diff --git a/src/Http/Headers/src/SameSiteMode.cs b/src/Http/Headers/src/SameSiteMode.cs index 3e3ce2675b8..3a632ee4feb 100644 --- a/src/Http/Headers/src/SameSiteMode.cs +++ b/src/Http/Headers/src/SameSiteMode.cs @@ -5,7 +5,7 @@ namespace Microsoft.Net.Http.Headers; /// <summary> /// Indicates if the client should include a cookie on "same-site" or "cross-site" requests. -/// RFC Draft: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.1 +/// RFC Draft: <see href="https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.1"/> /// </summary> // This mirrors Microsoft.AspNetCore.Http.SameSiteMode public enum SameSiteMode diff --git a/src/Http/Headers/src/SetCookieHeaderValue.cs b/src/Http/Headers/src/SetCookieHeaderValue.cs index aeee6d95160..34460aa8058 100644 --- a/src/Http/Headers/src/SetCookieHeaderValue.cs +++ b/src/Http/Headers/src/SetCookieHeaderValue.cs @@ -110,7 +110,7 @@ public class SetCookieHeaderValue /// represented as the date and time at which the cookie expires. /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc6265#section-4.1.2.1</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc6265#section-4.1.2.1"/>.</remarks> public DateTimeOffset? Expires { get; set; } /// <summary> @@ -120,7 +120,7 @@ public class SetCookieHeaderValue /// represented as the number of seconds until the cookie expires. /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc6265#section-4.1.2.2</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc6265#section-4.1.2.2"/>.</remarks> public TimeSpan? MaxAge { get; set; } /// <summary> @@ -130,7 +130,7 @@ public class SetCookieHeaderValue /// be sent. /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc6265#section-4.1.2.3</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc6265#section-4.1.2.3"/>.</remarks> public StringSegment Domain { get; set; } /// <summary> @@ -140,7 +140,7 @@ public class SetCookieHeaderValue /// be sent. /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc6265#section-4.1.2.4</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc6265#section-4.1.2.4"/>.</remarks> public StringSegment Path { get; set; } /// <summary> @@ -150,7 +150,7 @@ public class SetCookieHeaderValue /// channels. /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc6265#section-4.1.2.5</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc6265#section-4.1.2.5"/>.</remarks> public bool Secure { get; set; } /// <summary> @@ -160,7 +160,7 @@ public class SetCookieHeaderValue /// deployed in strict mode, and when supported by the client. /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-05#section-8.8</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-05#section-8.8"/>.</remarks> public SameSiteMode SameSite { get; set; } = SameSiteMode.Unspecified; /// <summary> @@ -171,7 +171,7 @@ public class SetCookieHeaderValue /// (such as a web browser API that exposes cookies to scripts). /// </para> /// </summary> - /// <remarks>See https://tools.ietf.org/html/rfc6265#section-4.1.2.6</remarks> + /// <remarks>See <see href="https://tools.ietf.org/html/rfc6265#section-4.1.2.6"/>.</remarks> public bool HttpOnly { get; set; } /// <summary> diff --git a/src/Http/Http.Extensions/src/ProblemDetails.cs b/src/Http/Http.Extensions/src/ProblemDetails.cs index 2d8c35d3e34..2d01289cdf1 100644 --- a/src/Http/Http.Extensions/src/ProblemDetails.cs +++ b/src/Http/Http.Extensions/src/ProblemDetails.cs @@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Http; namespace Microsoft.AspNetCore.Mvc; /// <summary> -/// A machine-readable format for specifying errors in HTTP API responses based on https://tools.ietf.org/html/rfc7807. +/// A machine-readable format for specifying errors in HTTP API responses based on <see href="https://tools.ietf.org/html/rfc7807"/>. /// </summary> [JsonConverter(typeof(ProblemDetailsJsonConverter))] public class ProblemDetails diff --git a/src/Http/Http.Features/src/IHttpRequestFeature.cs b/src/Http/Http.Features/src/IHttpRequestFeature.cs index f5be587ff2a..3f8f23a9848 100644 --- a/src/Http/Http.Features/src/IHttpRequestFeature.cs +++ b/src/Http/Http.Features/src/IHttpRequestFeature.cs @@ -57,7 +57,7 @@ public interface IHttpRequestFeature /// Gets or sets the request target as it was sent in the HTTP request. /// <para> /// This property contains the raw path and full query, as well as other request targets - /// such as * for OPTIONS requests (https://tools.ietf.org/html/rfc7230#section-5.3). + /// such as * for OPTIONS requests (<see href="https://tools.ietf.org/html/rfc7230#section-5.3"/>). /// </para> /// </summary> /// <remarks> diff --git a/src/Http/Http.Features/src/ITlsTokenBindingFeature.cs b/src/Http/Http.Features/src/ITlsTokenBindingFeature.cs index 1640e2f7209..b14ebef9d25 100644 --- a/src/Http/Http.Features/src/ITlsTokenBindingFeature.cs +++ b/src/Http/Http.Features/src/ITlsTokenBindingFeature.cs @@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Http.Features; /// <remarks> /// TLS token bindings help mitigate the risk of impersonation by an attacker in the /// event an authenticated client's bearer tokens are somehow exfiltrated from the -/// client's machine. See https://datatracker.ietf.org/doc/draft-popov-token-binding/ +/// client's machine. See <see href="https://datatracker.ietf.org/doc/draft-popov-token-binding/"/> /// for more information. /// </remarks> public interface ITlsTokenBindingFeature diff --git a/src/Http/Http.Features/src/SameSiteMode.cs b/src/Http/Http.Features/src/SameSiteMode.cs index 7d1efb0402d..b2f6ab61a44 100644 --- a/src/Http/Http.Features/src/SameSiteMode.cs +++ b/src/Http/Http.Features/src/SameSiteMode.cs @@ -5,7 +5,7 @@ namespace Microsoft.AspNetCore.Http; /// <summary> /// Used to set the SameSite field on response cookies to indicate if those cookies should be included by the client on future "same-site" or "cross-site" requests. -/// RFC Draft: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.1 +/// RFC Draft: <see href="https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.1"/> /// </summary> // This mirrors Microsoft.Net.Http.Headers.SameSiteMode public enum SameSiteMode diff --git a/src/Http/Http.Results/src/ProblemHttpResult.cs b/src/Http/Http.Results/src/ProblemHttpResult.cs index a0861eaf567..45b8017565b 100644 --- a/src/Http/Http.Results/src/ProblemHttpResult.cs +++ b/src/Http/Http.Results/src/ProblemHttpResult.cs @@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Http.HttpResults; /// <summary> /// An <see cref="IResult"/> that on execution will write Problem Details -/// HTTP API responses based on https://tools.ietf.org/html/rfc7807 +/// HTTP API responses based on <see href="https://tools.ietf.org/html/rfc7807"/> /// </summary> public sealed class ProblemHttpResult : IResult { diff --git a/src/Http/Routing/src/Internal/DfaGraphWriter.cs b/src/Http/Routing/src/Internal/DfaGraphWriter.cs index 1d3cc73f81c..cc2d3962c7b 100644 --- a/src/Http/Routing/src/Internal/DfaGraphWriter.cs +++ b/src/Http/Routing/src/Internal/DfaGraphWriter.cs @@ -9,10 +9,10 @@ namespace Microsoft.AspNetCore.Routing.Internal; /// <summary> /// <para> /// A singleton service that can be used to write the route table as a state machine -/// in GraphViz DOT language https://www.graphviz.org/doc/info/lang.html +/// in GraphViz DOT language <see href="https://www.graphviz.org/doc/info/lang.html"/>. /// </para> /// <para> -/// You can use http://www.webgraphviz.com/ to visualize the results. +/// You can use <see href="http://www.webgraphviz.com/"/> to visualize the results. /// </para> /// <para> /// This type has no support contract, and may be removed or changed at any time in diff --git a/src/HttpClientFactory/Polly/src/PolicyHttpMessageHandler.cs b/src/HttpClientFactory/Polly/src/PolicyHttpMessageHandler.cs index 8f16ac38ec4..2927839cd2e 100644 --- a/src/HttpClientFactory/Polly/src/PolicyHttpMessageHandler.cs +++ b/src/HttpClientFactory/Polly/src/PolicyHttpMessageHandler.cs @@ -15,12 +15,12 @@ namespace Microsoft.Extensions.Http; /// </summary> /// <remarks> /// <para> -/// This message handler implementation supports the use of policies provided by the Polly library for +/// This message handler implementation supports the use of policies provided by the Polly library for /// transient-fault-handling and resiliency. /// </para> /// <para> -/// The documentation provided here is focused guidance for using Polly together with the <see cref="IHttpClientFactory"/>. -/// See the Polly project and its documentation (https://github.com/app-vnext/Polly) for authoritative information on Polly. +/// The documentation provided here is focused guidance for using Polly together with the <see cref="IHttpClientFactory"/>. +/// See the Polly project and its documentation (<see href="https://github.com/app-vnext/Polly"/>) for authoritative information on Polly. /// </para> /// <para> /// The extension methods on <see cref="PollyHttpClientBuilderExtensions"/> are designed as a convenient and correct @@ -53,14 +53,14 @@ namespace Microsoft.Extensions.Http; /// your own policies as needed if this does not meet your requirements. /// </para> /// <para> -/// Take care when using policies such as Retry or Timeout together as HttpClient provides its own timeout via +/// Take care when using policies such as Retry or Timeout together as HttpClient provides its own timeout via /// <see cref="HttpClient.Timeout"/>. When combining Retry and Timeout, <see cref="HttpClient.Timeout"/> will act as a /// timeout across all tries; a Polly Timeout policy can be configured after a Retry policy in the configuration sequence, /// to provide a timeout-per-try. /// </para> /// <para> -/// All policies provided by Polly are designed to be efficient when used in a long-lived way. Certain policies such as the -/// Bulkhead and Circuit-Breaker maintain state and should be scoped across calls you wish to share the Bulkhead or Circuit-Breaker state. +/// All policies provided by Polly are designed to be efficient when used in a long-lived way. Certain policies such as the +/// Bulkhead and Circuit-Breaker maintain state and should be scoped across calls you wish to share the Bulkhead or Circuit-Breaker state. /// Take care to ensure the correct lifetimes when using policies and message handlers together in custom scenarios. The extension /// methods provided by <see cref="PollyHttpClientBuilderExtensions"/> are designed to assign a long lifetime to policies /// and ensure that they can be used when the handler rotation feature is active. diff --git a/src/Middleware/HttpsPolicy/src/HstsMiddleware.cs b/src/Middleware/HttpsPolicy/src/HstsMiddleware.cs index c65c0d7b5d8..71d1cd6fb29 100644 --- a/src/Middleware/HttpsPolicy/src/HstsMiddleware.cs +++ b/src/Middleware/HttpsPolicy/src/HstsMiddleware.cs @@ -12,7 +12,7 @@ namespace Microsoft.AspNetCore.HttpsPolicy; /// <summary> /// Enables HTTP Strict Transport Security (HSTS) -/// See https://tools.ietf.org/html/rfc6797. +/// See <see href="https://tools.ietf.org/html/rfc6797"/>. /// </summary> public class HstsMiddleware { diff --git a/src/Middleware/HttpsPolicy/src/HstsOptions.cs b/src/Middleware/HttpsPolicy/src/HstsOptions.cs index f57f1de2bf0..ace55c3f00c 100644 --- a/src/Middleware/HttpsPolicy/src/HstsOptions.cs +++ b/src/Middleware/HttpsPolicy/src/HstsOptions.cs @@ -13,7 +13,7 @@ public class HstsOptions /// </summary> /// <remarks> /// Max-age is required; defaults to 30 days. - /// See: https://tools.ietf.org/html/rfc6797#section-6.1.1 + /// See: <see href="https://tools.ietf.org/html/rfc6797#section-6.1.1"/> /// </remarks> public TimeSpan MaxAge { get; set; } = TimeSpan.FromDays(30); @@ -21,7 +21,7 @@ public class HstsOptions /// Enables includeSubDomain parameter of the Strict-Transport-Security header. /// </summary> /// <remarks> - /// See: https://tools.ietf.org/html/rfc6797#section-6.1.2 + /// See: <see href="https://tools.ietf.org/html/rfc6797#section-6.1.2"/> /// </remarks> public bool IncludeSubDomains { get; set; } diff --git a/src/Mvc/Mvc.Abstractions/src/ModelBinding/ModelMetadata.cs b/src/Mvc/Mvc.Abstractions/src/ModelBinding/ModelMetadata.cs index 808e7406d83..90b32074102 100644 --- a/src/Mvc/Mvc.Abstractions/src/ModelBinding/ModelMetadata.cs +++ b/src/Mvc/Mvc.Abstractions/src/ModelBinding/ModelMetadata.cs @@ -217,7 +217,7 @@ public abstract class ModelMetadata : IEquatable<ModelMetadata?>, IModelMetadata public abstract string? Description { get; } /// <summary> - /// Gets the format string (see https://msdn.microsoft.com/en-us/library/txafckwd.aspx) used to display the + /// Gets the format string (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd.aspx"/>) used to display the /// model. /// </summary> public abstract string? DisplayFormatString { get; } @@ -228,7 +228,7 @@ public abstract class ModelMetadata : IEquatable<ModelMetadata?>, IModelMetadata public abstract string? DisplayName { get; } /// <summary> - /// Gets the format string (see https://msdn.microsoft.com/en-us/library/txafckwd.aspx) used to edit the model. + /// Gets the format string (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd.aspx"/>) used to edit the model. /// </summary> public abstract string? EditFormatString { get; } diff --git a/src/Mvc/Mvc.Razor/src/RazorViewEngineOptions.cs b/src/Mvc/Mvc.Razor/src/RazorViewEngineOptions.cs index f6570a3c1f8..938152580af 100644 --- a/src/Mvc/Mvc.Razor/src/RazorViewEngineOptions.cs +++ b/src/Mvc/Mvc.Razor/src/RazorViewEngineOptions.cs @@ -19,7 +19,7 @@ public class RazorViewEngineOptions /// <remarks> /// <para> /// The locations of the views returned from controllers that do not belong to an area. - /// Locations are format strings (see https://msdn.microsoft.com/en-us/library/txafckwd.aspx) which may contain + /// Locations are format strings (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd.aspx"/>) which may contain /// the following format items: /// </para> /// <list type="bullet"> @@ -45,7 +45,7 @@ public class RazorViewEngineOptions /// <remarks> /// <para> /// The locations of the views returned from controllers that belong to an area. - /// Locations are format strings (see https://msdn.microsoft.com/en-us/library/txafckwd.aspx) which may contain + /// Locations are format strings (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd.aspx"/>) which may contain /// the following format items: /// </para> /// <list type="bullet"> @@ -74,7 +74,7 @@ public class RazorViewEngineOptions /// </summary> /// <remarks> /// <para> - /// Locations are format strings (see https://msdn.microsoft.com/en-us/library/txafckwd.aspx) which may contain + /// Locations are format strings (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd.aspx"/>) which may contain /// the following format items: /// </para> /// <list type="bullet"> @@ -105,7 +105,7 @@ public class RazorViewEngineOptions /// </summary> /// <remarks> /// <para> - /// Locations are format strings (see https://msdn.microsoft.com/en-us/library/txafckwd.aspx) which may contain + /// Locations are format strings (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd.aspx"/>) which may contain /// the following format items: /// </para> /// <list type="bullet"> diff --git a/src/Mvc/Mvc.TagHelpers/src/InputTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/InputTagHelper.cs index ecfdaf8d009..c98b295afb1 100644 --- a/src/Mvc/Mvc.TagHelpers/src/InputTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/InputTagHelper.cs @@ -93,7 +93,7 @@ public class InputTagHelper : TagHelper public ModelExpression For { get; set; } /// <summary> - /// The format string (see https://msdn.microsoft.com/en-us/library/txafckwd.aspx) used to format the + /// The format string (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd.aspx"/>) used to format the /// <see cref="For"/> result. Sets the generated "value" attribute to that formatted string. /// </summary> /// <remarks> diff --git a/src/Mvc/Mvc.ViewFeatures/src/Rendering/HtmlHelperInputExtensions.cs b/src/Mvc/Mvc.ViewFeatures/src/Rendering/HtmlHelperInputExtensions.cs index 0b96c970524..45faa1db3bb 100644 --- a/src/Mvc/Mvc.ViewFeatures/src/Rendering/HtmlHelperInputExtensions.cs +++ b/src/Mvc/Mvc.ViewFeatures/src/Rendering/HtmlHelperInputExtensions.cs @@ -542,7 +542,7 @@ public static class HtmlHelperInputExtensions /// <param name="expression">Expression name, relative to the current model.</param> /// <param name="value">If non-<c>null</c>, value to include in the element.</param> /// <param name="format"> - /// The format string (see https://msdn.microsoft.com/en-us/library/txafckwd.aspx) used to format the "value" + /// The format string (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd.aspx"/>) used to format the "value" /// attribute unless that came from model binding. /// </param> /// <returns>A new <see cref="IHtmlContent"/> containing the <input> element.</returns> @@ -647,7 +647,7 @@ public static class HtmlHelperInputExtensions /// <param name="htmlHelper">The <see cref="IHtmlHelper{TModel}"/> instance this method extends.</param> /// <param name="expression">An expression to be evaluated against the current model.</param> /// <param name="format"> - /// The format string (see https://msdn.microsoft.com/en-us/library/txafckwd.aspx) used to format the + /// The format string (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd.aspx"/>) used to format the /// <paramref name="expression"/> value when using that in the "value" attribute. /// </param> /// <typeparam name="TModel">The type of the model.</typeparam> diff --git a/src/Mvc/Mvc.ViewFeatures/src/Rendering/HtmlHelperValueExtensions.cs b/src/Mvc/Mvc.ViewFeatures/src/Rendering/HtmlHelperValueExtensions.cs index ef83086de19..aea90a352e2 100644 --- a/src/Mvc/Mvc.ViewFeatures/src/Rendering/HtmlHelperValueExtensions.cs +++ b/src/Mvc/Mvc.ViewFeatures/src/Rendering/HtmlHelperValueExtensions.cs @@ -99,7 +99,7 @@ public static class HtmlHelperValueExtensions /// </summary> /// <param name="htmlHelper">The <see cref="IHtmlHelper"/> instance this method extends.</param> /// <param name="format"> - /// The format string (see https://msdn.microsoft.com/en-us/library/txafckwd.aspx) used to format the return + /// The format string (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd.aspx"/>) used to format the return /// value unless that came from model binding. /// </param> /// <returns>A <see cref="string"/> containing the formatted value.</returns> diff --git a/src/Mvc/Mvc.ViewFeatures/src/Rendering/IHtmlHelper.cs b/src/Mvc/Mvc.ViewFeatures/src/Rendering/IHtmlHelper.cs index 2e5b0b168ae..b78364c6165 100644 --- a/src/Mvc/Mvc.ViewFeatures/src/Rendering/IHtmlHelper.cs +++ b/src/Mvc/Mvc.ViewFeatures/src/Rendering/IHtmlHelper.cs @@ -346,7 +346,7 @@ public interface IHtmlHelper /// </summary> /// <param name="value">The value.</param> /// <param name="format"> - /// The format string (see https://msdn.microsoft.com/en-us/library/txafckwd.aspx) used to format the return + /// The format string (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd.aspx"/>) used to format the return /// value. /// </param> /// <returns>A <see cref="string"/> containing the formatted value.</returns> @@ -645,7 +645,7 @@ public interface IHtmlHelper /// <param name="expression">Expression name, relative to the current model.</param> /// <param name="value">If non-<c>null</c>, value to include in the element.</param> /// <param name="format"> - /// The format string (see https://msdn.microsoft.com/en-us/library/txafckwd.aspx) used to format the "value" + /// The format string (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd.aspx"/>) used to format the "value" /// attribute unless that came from model binding. /// </param> /// <param name="htmlAttributes"> @@ -722,7 +722,7 @@ public interface IHtmlHelper /// </summary> /// <param name="expression">Expression name, relative to the current model.</param> /// <param name="format"> - /// The format string (see https://msdn.microsoft.com/en-us/library/txafckwd.aspx) used to format the return + /// The format string (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd.aspx"/>) used to format the return /// value unless that came from model binding. /// </param> /// <returns>A <see cref="string"/> containing the formatted value.</returns> diff --git a/src/Mvc/Mvc.ViewFeatures/src/Rendering/IHtmlHelperOfT.cs b/src/Mvc/Mvc.ViewFeatures/src/Rendering/IHtmlHelperOfT.cs index 2bd3ef18cd9..1beac54503b 100644 --- a/src/Mvc/Mvc.ViewFeatures/src/Rendering/IHtmlHelperOfT.cs +++ b/src/Mvc/Mvc.ViewFeatures/src/Rendering/IHtmlHelperOfT.cs @@ -372,7 +372,7 @@ public interface IHtmlHelper<TModel> : IHtmlHelper /// </summary> /// <param name="expression">An expression to be evaluated against the current model.</param> /// <param name="format"> - /// The format string (see https://msdn.microsoft.com/en-us/library/txafckwd.aspx) used to format the + /// The format string (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd.aspx"/>) used to format the /// <paramref name="expression"/> value when using that in the "value" attribute. /// </param> /// <param name="htmlAttributes"> @@ -429,7 +429,7 @@ public interface IHtmlHelper<TModel> : IHtmlHelper /// </summary> /// <param name="expression">An expression to be evaluated against the current model.</param> /// <param name="format"> - /// The format string (see https://msdn.microsoft.com/en-us/library/txafckwd.aspx) used to format the + /// The format string (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd.aspx"/>) used to format the /// <paramref name="expression"/> value when returning that value. /// </param> /// <typeparam name="TResult">The type of the <paramref name="expression"/> result.</typeparam> diff --git a/src/Mvc/Mvc.ViewFeatures/src/Rendering/TagBuilder.cs b/src/Mvc/Mvc.ViewFeatures/src/Rendering/TagBuilder.cs index 80701212e68..d0bdaf70f62 100644 --- a/src/Mvc/Mvc.ViewFeatures/src/Rendering/TagBuilder.cs +++ b/src/Mvc/Mvc.ViewFeatures/src/Rendering/TagBuilder.cs @@ -145,7 +145,7 @@ public class TagBuilder : IHtmlContent /// Valid HTML 4.01 "id" attribute value for an element with the given <paramref name="name"/>. /// </returns> /// <remarks> - /// Valid "id" attributes are defined in https://www.w3.org/TR/html401/types.html#type-id. + /// Valid "id" attributes are defined in <see href="https://www.w3.org/TR/html401/types.html#type-id"/>. /// </remarks> public static string CreateSanitizedId(string? name, string invalidCharReplacement) { diff --git a/src/Mvc/Mvc.ViewFeatures/src/ViewDataDictionary.cs b/src/Mvc/Mvc.ViewFeatures/src/ViewDataDictionary.cs index 3f0baa642ea..c9b3357a563 100644 --- a/src/Mvc/Mvc.ViewFeatures/src/ViewDataDictionary.cs +++ b/src/Mvc/Mvc.ViewFeatures/src/ViewDataDictionary.cs @@ -378,7 +378,7 @@ public class ViewDataDictionary : IDictionary<string, object?> /// </summary> /// <param name="expression">Expression name, relative to the current model.</param> /// <param name="format"> - /// The format string (see https://msdn.microsoft.com/en-us/library/txafckwd.aspx). + /// The format string (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd.aspx"/>). /// </param> /// <returns> /// Value of named <paramref name="expression"/> in this <see cref="ViewDataDictionary"/>, formatted using @@ -399,7 +399,7 @@ public class ViewDataDictionary : IDictionary<string, object?> /// </summary> /// <param name="value">The value to format.</param> /// <param name="format"> - /// The format string (see https://msdn.microsoft.com/en-us/library/txafckwd.aspx). + /// The format string (see <see href="https://msdn.microsoft.com/en-us/library/txafckwd.aspx"/>). /// </param> /// <returns>The formatted <see cref="string"/>.</returns> public static string? FormatValue(object? value, string? format) diff --git a/src/Security/Authentication/Certificate/src/CertificateAuthenticationExtensions.cs b/src/Security/Authentication/Certificate/src/CertificateAuthenticationExtensions.cs index 57923d75eb4..83e8da2d2ca 100644 --- a/src/Security/Authentication/Certificate/src/CertificateAuthenticationExtensions.cs +++ b/src/Security/Authentication/Certificate/src/CertificateAuthenticationExtensions.cs @@ -18,7 +18,7 @@ public static class CertificateAuthenticationAppBuilderExtensions /// <para> /// Certificate authentication uses a authentication handler that validates client certificate and /// raises an event where the certificate is resolved to a <see cref="ClaimsPrincipal"/>. - /// See https://tools.ietf.org/html/rfc5246#section-7.4.4 to read more about certificate authentication. + /// See <see href="https://tools.ietf.org/html/rfc5246#section-7.4.4"/> to read more about certificate authentication. /// </para> /// </summary> /// <param name="builder">The <see cref="AuthenticationBuilder"/>.</param> @@ -31,7 +31,7 @@ public static class CertificateAuthenticationAppBuilderExtensions /// <para> /// Certificate authentication uses a authentication handler that validates client certificate and /// raises an event where the certificate is resolved to a <see cref="ClaimsPrincipal"/>. - /// See https://tools.ietf.org/html/rfc5246#section-7.4.4 to read more about certificate authentication. + /// See <see href="https://tools.ietf.org/html/rfc5246#section-7.4.4"/> to read more about certificate authentication. /// </para> /// </summary> /// <param name="builder">The <see cref="AuthenticationBuilder"/>.</param> @@ -45,7 +45,7 @@ public static class CertificateAuthenticationAppBuilderExtensions /// <para> /// Certificate authentication uses a authentication handler that validates client certificate and /// raises an event where the certificate is resolved to a <see cref="ClaimsPrincipal"/>. - /// See https://tools.ietf.org/html/rfc5246#section-7.4.4 to read more about certificate authentication. + /// See <see href="https://tools.ietf.org/html/rfc5246#section-7.4.4"/> to read more about certificate authentication. /// </para> /// </summary> /// <param name="builder">The <see cref="AuthenticationBuilder"/>.</param> @@ -59,7 +59,7 @@ public static class CertificateAuthenticationAppBuilderExtensions /// <para> /// Certificate authentication uses a authentication handler that validates client certificate and /// raises an event where the certificate is resolved to a <see cref="ClaimsPrincipal"/>. - /// See https://tools.ietf.org/html/rfc5246#section-7.4.4 to read more about certificate authentication. + /// See <see href="https://tools.ietf.org/html/rfc5246#section-7.4.4"/> to read more about certificate authentication. /// </para> /// </summary> /// <param name="builder">The <see cref="AuthenticationBuilder"/>.</param> @@ -77,7 +77,7 @@ public static class CertificateAuthenticationAppBuilderExtensions /// <para> /// Certificate authentication uses a authentication handler that validates client certificate and /// raises an event where the certificate is resolved to a <see cref="ClaimsPrincipal"/>. - /// See https://tools.ietf.org/html/rfc5246#section-7.4.4 to read more about certicate authentication. + /// See <see href="https://tools.ietf.org/html/rfc5246#section-7.4.4"/> to read more about certicate authentication. /// </para> /// </summary> /// <param name="builder">The <see cref="AuthenticationBuilder"/>.</param> diff --git a/src/Security/Authentication/Facebook/src/FacebookDefaults.cs b/src/Security/Authentication/Facebook/src/FacebookDefaults.cs index 7ca45250b84..1a64d2f4fb3 100644 --- a/src/Security/Authentication/Facebook/src/FacebookDefaults.cs +++ b/src/Security/Authentication/Facebook/src/FacebookDefaults.cs @@ -22,7 +22,7 @@ public static class FacebookDefaults /// The default endpoint used to perform Facebook authentication. /// </summary> /// <remarks> - /// For more details about this endpoint, see https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow#login. + /// For more details about this endpoint, see <see href="https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow#login"/>. /// </remarks> public static readonly string AuthorizationEndpoint = "https://www.facebook.com/v11.0/dialog/oauth"; diff --git a/src/Security/Authentication/Facebook/src/FacebookOptions.cs b/src/Security/Authentication/Facebook/src/FacebookOptions.cs index a9812f366bc..51c5157b688 100644 --- a/src/Security/Authentication/Facebook/src/FacebookOptions.cs +++ b/src/Security/Authentication/Facebook/src/FacebookOptions.cs @@ -86,14 +86,14 @@ public class FacebookOptions : OAuthOptions /// <summary> /// Gets or sets if the <c>appsecret_proof</c> should be generated and sent with Facebook API calls. /// </summary> - /// <remarks>See https://developers.facebook.com/docs/graph-api/security#appsecret_proof for more details.</remarks> + /// <remarks>See <see href="https://developers.facebook.com/docs/graph-api/security#appsecret_proof"/> for more details.</remarks> /// <value>Defaults to <see langword="true"/>.</value> public bool SendAppSecretProof { get; set; } /// <summary> /// The list of fields to retrieve from the UserInformationEndpoint. - /// https://developers.facebook.com/docs/graph-api/reference/user /// </summary> + /// <remarks>See <see href="https://developers.facebook.com/docs/graph-api/reference/user"/> for more details.</remarks> /// <value> /// Defaults to include the following fields if none are specified: "name", "email", "first_name", and "last_name". /// </value> diff --git a/src/Security/Authentication/Google/src/GoogleDefaults.cs b/src/Security/Authentication/Google/src/GoogleDefaults.cs index 9af2bdde220..f98d8ef9043 100644 --- a/src/Security/Authentication/Google/src/GoogleDefaults.cs +++ b/src/Security/Authentication/Google/src/GoogleDefaults.cs @@ -22,7 +22,7 @@ public static class GoogleDefaults /// The default endpoint used to perform Google authentication. /// </summary> /// <remarks> - /// For more details about this endpoint, see https://developers.google.com/identity/protocols/oauth2/web-server#httprest + /// For more details about this endpoint, see <see href="https://developers.google.com/identity/protocols/oauth2/web-server#httprest"/>. /// </remarks> public static readonly string AuthorizationEndpoint = "https://accounts.google.com/o/oauth2/v2/auth"; @@ -35,7 +35,7 @@ public static class GoogleDefaults /// The Google endpoint that is used to gather additional user information. /// </summary> /// <remarks> - /// For more details about this endpoint, see https://developers.google.com/apis-explorer/#search/oauth2/oauth2/v2/. + /// For more details about this endpoint, see <see href="https://developers.google.com/apis-explorer/#search/oauth2/oauth2/v2/"/>. /// </remarks> public static readonly string UserInformationEndpoint = "https://www.googleapis.com/oauth2/v2/userinfo"; } diff --git a/src/Security/Authentication/MicrosoftAccount/src/MicrosoftAccountDefaults.cs b/src/Security/Authentication/MicrosoftAccount/src/MicrosoftAccountDefaults.cs index 4d50d351b8b..5f9678308d9 100644 --- a/src/Security/Authentication/MicrosoftAccount/src/MicrosoftAccountDefaults.cs +++ b/src/Security/Authentication/MicrosoftAccount/src/MicrosoftAccountDefaults.cs @@ -22,7 +22,7 @@ public static class MicrosoftAccountDefaults /// The default endpoint used to perform Microsoft account authentication. /// </summary> /// <remarks> - /// For more details about this endpoint, see https://developer.microsoft.com/en-us/graph/docs/concepts/auth_v2_user + /// For more details about this endpoint, see <see href="https://developer.microsoft.com/en-us/graph/docs/concepts/auth_v2_user"/>. /// </remarks> public static readonly string AuthorizationEndpoint = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"; diff --git a/src/Security/Authentication/MicrosoftAccount/src/MicrosoftChallengeProperties.cs b/src/Security/Authentication/MicrosoftAccount/src/MicrosoftChallengeProperties.cs index a45a5fd7a7f..08d2b23f421 100644 --- a/src/Security/Authentication/MicrosoftAccount/src/MicrosoftChallengeProperties.cs +++ b/src/Security/Authentication/MicrosoftAccount/src/MicrosoftChallengeProperties.cs @@ -7,7 +7,7 @@ namespace Microsoft.AspNetCore.Authentication.MicrosoftAccount; /// <summary> /// <see cref="AuthenticationProperties"/> for Microsoft OAuth challenge request. -/// See https://docs.microsoft.com/azure/active-directory/develop/v2-oauth2-auth-code-flow#request-an-authorization-code for reference +/// See <see href="https://docs.microsoft.com/azure/active-directory/develop/v2-oauth2-auth-code-flow#request-an-authorization-code"/> for reference. /// </summary> public class MicrosoftChallengeProperties : OAuthChallengeProperties { diff --git a/src/Security/Authentication/OAuth/src/OAuthConstants.cs b/src/Security/Authentication/OAuth/src/OAuthConstants.cs index 1756f2db87e..72ed03ddaa1 100644 --- a/src/Security/Authentication/OAuth/src/OAuthConstants.cs +++ b/src/Security/Authentication/OAuth/src/OAuthConstants.cs @@ -9,22 +9,22 @@ namespace Microsoft.AspNetCore.Authentication.OAuth; public static class OAuthConstants { /// <summary> - /// code_verifier defined in https://tools.ietf.org/html/rfc7636 + /// code_verifier defined in <see href="https://tools.ietf.org/html/rfc7636"/>. /// </summary> public static readonly string CodeVerifierKey = "code_verifier"; /// <summary> - /// code_challenge defined in https://tools.ietf.org/html/rfc7636 + /// code_challenge defined in <see href="https://tools.ietf.org/html/rfc7636"/>. /// </summary> public static readonly string CodeChallengeKey = "code_challenge"; /// <summary> - /// code_challenge_method defined in https://tools.ietf.org/html/rfc7636 + /// code_challenge_method defined in <see href="https://tools.ietf.org/html/rfc7636"/>. /// </summary> public static readonly string CodeChallengeMethodKey = "code_challenge_method"; /// <summary> - /// S256 defined in https://tools.ietf.org/html/rfc7636 + /// S256 defined in <see href="https://tools.ietf.org/html/rfc7636"/>. /// </summary> public static readonly string CodeChallengeMethodS256 = "S256"; } diff --git a/src/Security/Authentication/OAuth/src/OAuthOptions.cs b/src/Security/Authentication/OAuth/src/OAuthOptions.cs index fd5a51a14c3..1bbcce241dc 100644 --- a/src/Security/Authentication/OAuth/src/OAuthOptions.cs +++ b/src/Security/Authentication/OAuth/src/OAuthOptions.cs @@ -104,7 +104,7 @@ public class OAuthOptions : RemoteAuthenticationOptions public ISecureDataFormat<AuthenticationProperties> StateDataFormat { get; set; } = default!; /// <summary> - /// Enables or disables the use of the Proof Key for Code Exchange (PKCE) standard. See https://tools.ietf.org/html/rfc7636. + /// Enables or disables the use of the Proof Key for Code Exchange (PKCE) standard. See <see href="https://tools.ietf.org/html/rfc7636"/>. /// The default value is `false` but derived handlers should enable this if their provider supports it. /// </summary> public bool UsePkce { get; set; } diff --git a/src/Security/Authentication/OpenIdConnect/src/OpenIdConnectOptions.cs b/src/Security/Authentication/OpenIdConnect/src/OpenIdConnectOptions.cs index 721d9547980..82b597ce4a7 100644 --- a/src/Security/Authentication/OpenIdConnect/src/OpenIdConnectOptions.cs +++ b/src/Security/Authentication/OpenIdConnect/src/OpenIdConnectOptions.cs @@ -299,7 +299,7 @@ public class OpenIdConnectOptions : RemoteAuthenticationOptions /// <summary> /// Enables or disables the use of the Proof Key for Code Exchange (PKCE) standard. /// This only applies when the <see cref="ResponseType"/> is set to <see cref="OpenIdConnectResponseType.Code"/>. - /// See https://tools.ietf.org/html/rfc7636. + /// See <see href="https://tools.ietf.org/html/rfc7636"/>. /// The default value is `true`. /// </summary> public bool UsePkce { get; set; } = true; diff --git a/src/Security/Authentication/Twitter/src/TwitterOptions.cs b/src/Security/Authentication/Twitter/src/TwitterOptions.cs index 22a4edffe88..e1ee989e6d9 100644 --- a/src/Security/Authentication/Twitter/src/TwitterOptions.cs +++ b/src/Security/Authentication/Twitter/src/TwitterOptions.cs @@ -54,7 +54,7 @@ public class TwitterOptions : RemoteAuthenticationOptions /// Enables the retrieval user details during the authentication process, including /// e-mail addresses. Retrieving e-mail addresses requires special permissions /// from Twitter Support on a per application basis. The default is false. - /// See https://dev.twitter.com/rest/reference/get/account/verify_credentials + /// See <see href="https://dev.twitter.com/rest/reference/get/account/verify_credentials"/>. /// </summary> public bool RetrieveUserDetails { get; set; } diff --git a/src/Servers/HttpSys/src/IHttpSysRequestInfoFeature.cs b/src/Servers/HttpSys/src/IHttpSysRequestInfoFeature.cs index d52caa1afc5..4fff82b054f 100644 --- a/src/Servers/HttpSys/src/IHttpSysRequestInfoFeature.cs +++ b/src/Servers/HttpSys/src/IHttpSysRequestInfoFeature.cs @@ -7,8 +7,8 @@ namespace Microsoft.AspNetCore.Server.HttpSys; /// <summary> /// This exposes the Http.Sys HTTP_REQUEST_INFO extensibility point as opaque data for the caller to interperate. -/// https://docs.microsoft.com/en-us/windows/win32/api/http/ns-http-http_request_v2 -/// https://docs.microsoft.com/en-us/windows/win32/api/http/ns-http-http_request_info +/// <see href="https://docs.microsoft.com/en-us/windows/win32/api/http/ns-http-http_request_v2"/>, +/// <see href="https://docs.microsoft.com/en-us/windows/win32/api/http/ns-http-http_request_info"/> /// </summary> public interface IHttpSysRequestInfoFeature { diff --git a/src/Servers/IIS/IIS/src/StartupHook.cs b/src/Servers/IIS/IIS/src/StartupHook.cs index d34175404ed..9a01f9e669d 100644 --- a/src/Servers/IIS/IIS/src/StartupHook.cs +++ b/src/Servers/IIS/IIS/src/StartupHook.cs @@ -7,14 +7,14 @@ using Microsoft.Extensions.FileProviders; /// <summary> /// Startup hooks are pieces of code that will run before a users program main executes -/// See: https://github.com/dotnet/core-setup/blob/master/Documentation/design-docs/host-startup-hook.md +/// See: <see href="https://github.com/dotnet/core-setup/blob/master/Documentation/design-docs/host-startup-hook.md"/> /// The type must be named StartupHook without any namespace, and should be internal. /// </summary> internal class StartupHook { /// <summary> /// Startup hooks are pieces of code that will run before a users program main executes - /// See: https://github.com/dotnet/core-setup/blob/master/Documentation/design-docs/host-startup-hook.md + /// See: <see href="https://github.com/dotnet/core-setup/blob/master/Documentation/design-docs/host-startup-hook.md"/> /// </summary> public static void Initialize() { diff --git a/src/Servers/Kestrel/Core/src/KestrelServerOptions.cs b/src/Servers/Kestrel/Core/src/KestrelServerOptions.cs index 1bf0ebf264c..ec009ae0dfe 100644 --- a/src/Servers/Kestrel/Core/src/KestrelServerOptions.cs +++ b/src/Servers/Kestrel/Core/src/KestrelServerOptions.cs @@ -51,7 +51,7 @@ public class KestrelServerOptions /// <summary> /// Gets or sets a value that controls whether dynamic compression of response headers is allowed. /// For more information about the security considerations of HPack dynamic header compression, visit - /// https://tools.ietf.org/html/rfc7541#section-7. + /// <see href="https://tools.ietf.org/html/rfc7541#section-7"/>. /// </summary> /// <remarks> /// Defaults to true. @@ -72,8 +72,8 @@ public class KestrelServerOptions /// If <c>false</c> then the `:scheme` field for HTTP/2 and HTTP/3 requests must exactly match the transport (e.g. https for TLS /// connections, http for non-TLS). If <c>true</c> then the `:scheme` field for HTTP/2 and HTTP/3 requests can be set to alternate values /// and this will be reflected by `HttpRequest.Scheme`. The Scheme must still be valid according to - /// https://datatracker.ietf.org/doc/html/rfc3986/#section-3.1. Only enable this when working with a trusted proxy. This can be used in - /// scenarios such as proxies converting from alternate protocols. See https://datatracker.ietf.org/doc/html/rfc7540#section-8.1.2.3. + /// <see href="https://datatracker.ietf.org/doc/html/rfc3986/#section-3.1"/>. Only enable this when working with a trusted proxy. This can be used in + /// scenarios such as proxies converting from alternate protocols. See <see href="https://datatracker.ietf.org/doc/html/rfc7540#section-8.1.2.3"/>. /// Applications that enable this should validate an expected scheme is provided before using it. /// </para> /// </summary> diff --git a/src/SignalR/common/Http.Connections/src/WebSocketOptions.cs b/src/SignalR/common/Http.Connections/src/WebSocketOptions.cs index 05f5dbdf7d6..139aad4beb9 100644 --- a/src/SignalR/common/Http.Connections/src/WebSocketOptions.cs +++ b/src/SignalR/common/Http.Connections/src/WebSocketOptions.cs @@ -20,7 +20,7 @@ public class WebSocketOptions /// by the client in the 'Sec-WebSocket-Protocol' request header. /// </summary> /// <remarks> - /// See RFC 6455 section 1.3 for more details on the WebSocket handshake: https://tools.ietf.org/html/rfc6455#section-1.3 + /// See RFC 6455 section 1.3 for more details on the WebSocket handshake: <see href="https://tools.ietf.org/html/rfc6455#section-1.3"/> /// </remarks> // WebSocketManager's list of sub protocols is an IList: // https://github.com/aspnet/HttpAbstractions/blob/a6bdb9b1ec6ed99978a508e71a7f131be7e4d9fb/src/Microsoft.AspNetCore.Http.Abstractions/WebSocketManager.cs#L23 -- GitLab