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

时间:2016-01-31 23:28:04

标签: sql asp.net-mvc-4

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

到目前为止,我有一些实体要支持......我希望它可以提供帮助。

  
      
  • 作用
  •   
  • 用户
  •   
  • 的UserRole
  •   

我试图使用[Role]注释。有可能吗?

我有点失落,我需要一个帮助请!!!!

1 个答案:

答案 0 :(得分:0)

我想我知道了。

请随时改进并重新发布:

[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;

    }

}