我有一个复杂的应用程序,其中包含许多Web Api调用,它们需要数据库中的权限检查。一个例子简单的API调用我可能是:ASP.Net MVC Web API的自定义授权
[HttpGet]
public IEnumerable<StudentContact> GetStudentContacts(int id)
{
return db.StudentContacts.AsNoTracking().Where(n => n.StudentId == id && n.Current_Record == true).OrderBy(n => n.RankOrder);
}
而要做到权限检查我必须做到以下几点:
int staffID = (User as CustomPrincipal).UserId;
int siteId = Functions.GetSiteIdFromCookie();
if (Functions.UserHasAccess(staffID, AccessLevels.access_StudentDetailsUpdate,siteId) == true) return true;
else return false;
我想达成什么是创建一个自定义授权注解所以我可以有:
[HttpGet]
[PermissionAuth(AccessLevels.access_StudentDetailsUpdate,AccessLevels.access_StudentDetailsReadOnly)]
public IEnumerable......
而我可能需要有一个选项和/或即两者都是真实的或一个是真实的。谁能帮忙?
你看着使用过滤器? – Liath
不容易设置自定义过滤器吗?它会拒绝访问该功能吗? – user1166905