我已使用标准方式在 ASP.Net Core 6 中实现了 Azure AD 身份验证,并在控制器类顶部使用了 [Authorize] 属性。所有这些都工作正常。
builder.Services.AddMicrosoftIdentityWebApiAuthentication(builder.Configuration, "AzureAd");
Run Code Online (Sandbox Code Playgroud)
除了身份验证之外,我还尝试使用 TypeFilterAttribute 类构建自定义授权。代码片段如下:
public class CustomAuthorizeAttribute : TypeFilterAttribute
{
public CustomAuthorizeAttribute(params Roles[] roles) : base(typeof(CustomAuthorizeFilter))
{
Roles[] _roles = roles;
Arguments = new object[] { _roles };
}
}
public class CustomAuthorizeFilter : IAuthorizationFilter
{
private readonly Roles[] _roles;
private readonly IUserService _userService;
public CustomAuthorizeFilter(Roles[] roles, IUserService userService)
{
_roles = roles ?? throw new UnauthorizedAccessException("OnAuthorization : Missing role parameter");
_userService = userService;
}
public async void OnAuthorization(AuthorizationFilterContext …
Run Code Online (Sandbox Code Playgroud) c# asp.net-authorization azure-active-directory asp.net-core-webapi
我有一个数组,我需要从中过滤 JQGrid。
var filter = ["a","b","c","d",...255];
var postData = $('jqGridName').jqGrid('getGridParam', 'postData');
jQuery.extend(postData,
{
filters: {
groupOp: "AND",
rules: [
{ field: "Types", op: "ne", data: filter[0] },
{ field: "Types", op: "ne", data: filter[1] },
{ field: "Types", op: "ne", data: filter[2] },
{ field: "Types", op: "ne", data: filter[3] },
.
.
.
{ field: "Types", op: "ne", data: filter[255] },
]
},
});
Run Code Online (Sandbox Code Playgroud)
数组中的项数不固定。但它可以包含的最大值是 255。那么我需要写到 255(如上所述)还是有任何简单的方法可以实现相同的目标?
问候,
瓦伦