小编典典

具有Active Directory身份验证和SQL中角色的MVC4和EF5

sql

我需要使用Active Directory身份验证在MVC4和EF5中实现一个项目,但必须在SQL中实现角色,而不是使用角色的AD组。

到目前为止,我已经得到了一些实体的支持……我希望它能有所帮助。

  • 角色
  • 用户
  • 用户角色

我正在尝试使用[角色]批注。是否有可能?


阅读 166

收藏
2021-04-07

共1个答案

小编典典

我想我明白了。

请随时进行改进并重新发布:

[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public class ARQAuthorize : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        bool allowToUse = false;
        IPrincipal user = httpContext.User;
        if (!user.Identity.IsAuthenticated)
        {
            return false;
        }
        else{
        try
        {
           Arq.Core.DAL.ArqContext c = new ArqContext();
           if (c.Users.Where(u => u.UserName.ToUpper() == user.Identity.Name.ToUpper()).FirstOrDefault().role.RoleDescription == "ADMINS")
           {
               allowToUse = true;
           }
        }
        catch (Exception)
        {

            allowToUse = false;
        }
        }          
            return allowToUse;

    }

}
2021-04-07