gpt4 book ai didi

Windows 身份验证的 ASP.NET 5 自定义角色

转载 作者:行者123 更新时间:2023-12-02 18:08:53 26 4
gpt4 key购买 nike

我正在使用 Windows 身份验证的 ASP.NET 5 构建一个 Intranet 类型的网站。我可以进行身份​​验证,但我不希望域中的每个人都可以访问 Intranet 站点。我无法使用域角色,因此我在 SQL Server 中设置了自己的自定义角色。我有一个将域用户名映射到角色的表。我想将对 Intranet 站点的访问限制为仅具有 SQL Server 角色表中定义的角色的用户。如何在 ASP.NET 5 中为 Windows 身份验证设置自定义角色?谢谢!

最佳答案

您没有设置自定义角色。您需要创建自定义授权属性,如here所述。

更新:

是的,您可以在全局范围内使用自定义授权属性。假设这是您的自定义授权属性:

public class MyAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
var username = httpContext.User.Identity.Name;

// Check to see if user has a role in the database
var isAuthorized = db.User.Find(username).Any();

return isAuthorized;
}
}

然后,您可以在操作级别或 Controller 级别使用它,如下所示:

[MyAuthorize]
public ActionResult Index()
{
}

或者,您可以在 App_Start 文件夹下的 FilterConfig 类中将其注册为全局过滤器,如下所示:

public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new MyAuthorizeAttribute());
}
}

关于Windows 身份验证的 ASP.NET 5 自定义角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30147627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com