在我的应用程序中,我想为管理员添加功能,以转到特定屏幕,并为某些角色提供某些控制器/方法。 现在我正在使用内置角色检查,如
[Authorize(Roles = "APUL_Admin")]
所以我将其更改为[AuthorizeExtended()]
,我正在实现它:
public class AuthorizeExtended : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
var isAuthorized = base.AuthorizeCore(httpContext);
if (!isAuthorized)
{
return false;
}
// Point of interest **HERE**
return true;
}
}
这都很标准。
此时( HERE 见上文)来自HttpContextBase我知道用户的角色,控制器和方法。我可以转到数据库并确保这些角色可以访问此控制器/操作。
这是我的问题: 我不想为每个请求转到数据库,因为它很慢并且对DB来说是很多开销。处理这个问题的最佳方法是什么?缓存吗?我正在寻找实施细节。
感谢任何帮助。谢谢!
答案 0 :(得分:2)
是的,缓存是您避免向数据库发出重复请求所需的内容。这是基本的实现:
def main():
grade = input(“What’s your grade?”)
if(grade >= 90):
print(“You’re doing great!”)
elif(grade <= 89 and >= 78):
print(“You’re doing good!”)
elif(grade >65 and <= 77)
print("You need some work")
else:
print("Contact your teacher")
main()