From af71505cfc82b533a63b467cd5031465fc7fee8e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 3 Jan 2026 01:46:18 +0000 Subject: [PATCH 1/2] Initial plan From d53e3b9707736f75b16a14f1dab26cad6f089f66 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 3 Jan 2026 01:54:10 +0000 Subject: [PATCH 2/2] Add constructors for 13 and 14 parameters to CasbinAuthorizeAttribute - Added CasbinAuthorizeAttribute constructor with 13 parameters - Added CasbinAuthorizeAttribute constructor with 14 parameters - Added generic CasbinAuthorizeAttribute class - Added generic CasbinAuthorizeAttribute class This fixes the issue where the Casbin.NET 2.19.1 upgrade added support for 14 parameters in StringRequestValues but the attribute constructors only supported up to 12 parameters. Co-authored-by: hsluoyz <3787410+hsluoyz@users.noreply.github.com> --- .../CasbinAuthorizeAttribute.Generic.cs | 22 +++++++++++++++++++ .../Attributes/CasbinAuthorizeAttribute.cs | 10 +++++++++ 2 files changed, 32 insertions(+) diff --git a/src/Casbin.AspNetCore.Core/Attributes/CasbinAuthorizeAttribute.Generic.cs b/src/Casbin.AspNetCore.Core/Attributes/CasbinAuthorizeAttribute.Generic.cs index 463143b..c11d660 100644 --- a/src/Casbin.AspNetCore.Core/Attributes/CasbinAuthorizeAttribute.Generic.cs +++ b/src/Casbin.AspNetCore.Core/Attributes/CasbinAuthorizeAttribute.Generic.cs @@ -134,3 +134,25 @@ public CasbinAuthorizeAttribute(T1 value1, T2 value2, T3 value3, T4 value4, T5 v } public ref RequestValues Values => ref _values; } + +[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)] +public class CasbinAuthorizeAttribute : CasbinAuthorizeBaseAttribute, ICasbinAuthorizationData> +{ + private RequestValues _values; + public CasbinAuthorizeAttribute(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13) + { + _values = Request.CreateValues(value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13); + } + public ref RequestValues Values => ref _values; +} + +[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)] +public class CasbinAuthorizeAttribute : CasbinAuthorizeBaseAttribute, ICasbinAuthorizationData> +{ + private RequestValues _values; + public CasbinAuthorizeAttribute(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14) + { + _values = Request.CreateValues(value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14); + } + public ref RequestValues Values => ref _values; +} diff --git a/src/Casbin.AspNetCore.Core/Attributes/CasbinAuthorizeAttribute.cs b/src/Casbin.AspNetCore.Core/Attributes/CasbinAuthorizeAttribute.cs index 06e58c2..b31d9c3 100644 --- a/src/Casbin.AspNetCore.Core/Attributes/CasbinAuthorizeAttribute.cs +++ b/src/Casbin.AspNetCore.Core/Attributes/CasbinAuthorizeAttribute.cs @@ -75,5 +75,15 @@ public CasbinAuthorizeAttribute(string value1, string value2, string value3, str _values = new StringRequestValues(value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12); } + public CasbinAuthorizeAttribute(string value1, string value2, string value3, string value4, string value5, string value6, string value7, string value8, string value9, string value10, string value11, string value12, string value13) : this(value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12) + { + _values = new StringRequestValues(value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13); + } + + public CasbinAuthorizeAttribute(string value1, string value2, string value3, string value4, string value5, string value6, string value7, string value8, string value9, string value10, string value11, string value12, string value13, string value14) : this(value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13) + { + _values = new StringRequestValues(value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14); + } + public ref StringRequestValues Values => ref _values; }