diff --git a/src/Http/Routing/src/Constraints/RegexInlineRouteConstraint.cs b/src/Http/Routing/src/Constraints/RegexInlineRouteConstraint.cs
index 465e0a9f9c5d..50963a0df25f 100644
--- a/src/Http/Routing/src/Constraints/RegexInlineRouteConstraint.cs
+++ b/src/Http/Routing/src/Constraints/RegexInlineRouteConstraint.cs
@@ -1,6 +1,9 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
+using System.Diagnostics.CodeAnalysis;
+using System.Text.RegularExpressions;
+
namespace Microsoft.AspNetCore.Routing.Constraints;
///
@@ -12,7 +15,7 @@ public class RegexInlineRouteConstraint : RegexRouteConstraint
/// Initializes a new instance of the class.
///
/// The regular expression pattern to match.
- public RegexInlineRouteConstraint(string regexPattern)
+ public RegexInlineRouteConstraint([StringSyntax(StringSyntaxAttribute.Regex, RegexOptions.CultureInvariant | RegexOptions.IgnoreCase)] string regexPattern)
: base(regexPattern)
{
}
diff --git a/src/Middleware/Rewrite/src/RewriteOptionsExtensions.cs b/src/Middleware/Rewrite/src/RewriteOptionsExtensions.cs
index 37baa577c20e..7a0841b1dd32 100644
--- a/src/Middleware/Rewrite/src/RewriteOptionsExtensions.cs
+++ b/src/Middleware/Rewrite/src/RewriteOptionsExtensions.cs
@@ -1,6 +1,7 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
+using System.Diagnostics.CodeAnalysis;
using Microsoft.AspNetCore.Http;
namespace Microsoft.AspNetCore.Rewrite;
@@ -42,7 +43,7 @@ public static RewriteOptions Add(this RewriteOptions options, ActionIf the regex matches, what to replace the uri with.
/// If the regex matches, conditionally stop processing other rules.
/// The Rewrite options.
- public static RewriteOptions AddRewrite(this RewriteOptions options, string regex, string replacement, bool skipRemainingRules)
+ public static RewriteOptions AddRewrite(this RewriteOptions options, [StringSyntax(StringSyntaxAttribute.Regex)] string regex, string replacement, bool skipRemainingRules)
{
options.Rules.Add(new RewriteRule(regex, replacement, skipRemainingRules));
return options;
@@ -55,7 +56,7 @@ public static RewriteOptions AddRewrite(this RewriteOptions options, string rege
/// The regex string to compare with.
/// If the regex matches, what to replace the uri with.
/// The Rewrite options.
- public static RewriteOptions AddRedirect(this RewriteOptions options, string regex, string replacement)
+ public static RewriteOptions AddRedirect(this RewriteOptions options, [StringSyntax(StringSyntaxAttribute.Regex)] string regex, string replacement)
{
return AddRedirect(options, regex, replacement, statusCode: StatusCodes.Status302Found);
}
@@ -68,7 +69,7 @@ public static RewriteOptions AddRedirect(this RewriteOptions options, string reg
/// If the regex matches, what to replace the uri with.
/// The status code to add to the response.
/// The Rewrite options.
- public static RewriteOptions AddRedirect(this RewriteOptions options, string regex, string replacement, int statusCode)
+ public static RewriteOptions AddRedirect(this RewriteOptions options, [StringSyntax(StringSyntaxAttribute.Regex)] string regex, string replacement, int statusCode)
{
options.Rules.Add(new RedirectRule(regex, replacement, statusCode));
return options;