من هم سیستم مشابهی (کنترل دسترسی بر اساس پرمیشن های ثبت شده در دیتابیس) در پروژه هام پیاده سازی کرده ام.

برای بررسی پرمیشن های کار نیاز نیست هر بار به دیتابیس مراجعه کنید. من هنگامی که کاربر لاگین میکنه و یا به عنوان یک کاربر لاگین شده به سایت وارد میشه در متد Session_Start در Global.asax دسترسی های کاربر رو تبدیل به یک لیست می کنم و داخل Session قرار میدم. هر بار نیاز به بررسی دسترسی است روی اون لیست کوئری میزنم. این طوری سرعت کار خیلی بالا میره.