我需要使用Active Directory身份验证在MVC4和EF5中实现一个项目,但是我必须在SQL中实现角色,而不是使用角色的AD组。
到目前为止,我有一些实体要支持......我希望它可以提供帮助。
- 作用
- 用户
- 的UserRole
我试图使用[Role]注释。有可能吗?
我有点失落,我需要一个帮助请!!!!
答案 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;
}
}