使用IAuthorizationFilter和Windows身份验证进行简单检查

移位

有一个经过Windows身份验证的(Intranet).net核心Web应用程序。

由于用户已经通过身份验证,因此该部分已完成。我不在乎索赔等。只想针对列表(从sql)运行用户名的简单检查。任何有效的域用户都可以访问该站点,但是我们希望根据自定义列表和Db中的其他一些检查来检查该用户,以查看他们是否可以使用此api。

我缺少什么或剩下什么可以将此用作api操作属性?想法是在控制器级别使用它。

public class ApiAuthFilter : IAuthorizationFilter
{
    public void OnAuthorization(AuthorizationFilterContext context)
    {
        var httpContext = context.HttpContext;


        // get user name
        string userName = httpContext.User.Identity.Name;

        // check against list to see if access permitted
        if(!CheckUser(userName) ) {
            context.Result = new ForbidResult();
        }

    }
}
瑞安

我缺少什么或剩下什么可以将此用作api操作属性?这个想法是在控制器级别使用它

如果您想使用授权过滤器作为属性,

1.一种方法是可以使用TypeFilterAttribute

[TypeFilter(typeof(ApiAuthFilter))]
public class HomeController : Controller

2.另一种方式是您只需要继承AuthorizeAttributeApiAuthFilter:

public class ApiAuthFilter : AuthorizeAttribute,IAuthorizationFilter
{
    public void OnAuthorization(AuthorizationFilterContext context)
    {
        var httpContext = context.HttpContext;

        // get user name
        string userName = httpContext.User.Identity.Name;

        // check against list to see if access permitted
        if (!CheckUser(userName))
        {
            context.Result = new ForbidResult();
        }

    }
}

然后,您可以在控制器级别使用它,例如:

[ApiAuthFilter]
public class HomeController : Controller

请参阅如何在ASP.NET Core中创建自定义AuthorizeAttribute?

.NET Core API中的自定义授权筛选器

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Spring和JWT进行基于令牌的身份验证

使用Go和AngularJS进行用户身份验证

如何在ember cli中使用自定义授权者和自定义身份验证器进行ember简单身份验证

Django使用登录的Windows域用户进行身份验证

如何检查用户是否需要使用Firebase身份验证进行重新身份验证

如何使用IAM DB身份验证和Python在MySQL RDS中进行身份验证

使用ReactJS和Firebase进行身份验证

使用Polymer和Firebase对Google身份验证进行的操作

如何使用Flutter和Firebase进行离线身份验证

使用Vue JS和Django进行身份验证?

使用Google登录和SwiftUI检查用户身份验证

SSH不使用公共密钥进行身份验证(Windows)

使用Next.js和Redux进行身份验证

使用谷歌浏览器进行Windows身份验证

使用Firefox进行Windows域身份验证

无法使用Windows身份验证向SMTP服务器进行身份验证

使用asp.net进行Windows身份验证

使用会话和cookie进行Servlet身份验证

无法使用Django和ldap进行身份验证

使用 Emberfire 和 Torii 进行 Firebase 3 身份验证

使用 Ardent、Entrust 和 Confide 进行 Laravel 身份验证

使用 uid 进行 PHP 和 LDAP 登录身份验证

使用 LDAP 和 Windows Active Directory 进行用户身份验证 (Windows Server 2016)

使用 Lambda 和 AWS Cognito 进行身份验证

使用 Django 和 Angular 进行 Windows 身份验证?

无法在简单的 HTML、JS 页面上使用 firebase 身份验证进行身份验证

使用 Windows 集成身份验证对自定义 api 进行身份验证

使用python面板holoviz进行简单身份验证

使用密码和访问 + 刷新令牌进行身份验证