سلام یه کلاس OnAuthorization دارم میخوام سفارشی سازیش کنم و هر اکشنی صدا زده میشه و اون attribute mypermission بالاسرش بود بره و تو بانک چک کنه دسترسی داره یا نه
Repository دارم به این شکل
و به این شکل استفاده میکنم که تو اون کلاس OnAuthh... رو نمیفهمتش
سلام
البته خودمم یک همچین سوال دارم و در آدرس زیر مطرح کردم
قطعا شما باید از اطلاعاتی که context در اختیار شما میذاره استفاده کنید. برای مثال context یک ویژگی با نام ActionDescriptor داره که میتونید نام کامل متدی که فراخوانی شده را بدست بیارید. همچنین از طریق context میتونید به HttpContext و در نتیجه به Session, User و سایر اطلاعات دیگه نیز دسترسی داشته باشید. حالا شما باید سعی کنید که از بانک اطلاعاتی چک کنید که آیا کاربر A به متد WebApp.Controller.HomeController.OnGet دسترسی داره یا خیر. در نام متد من از آدرس کامل استفاده کردم و پیشنهاد میکنم شما هم از آدرس کامل استفاده کنید.
در انتها اگر مقادیر را بررسی کردید و کاربر دسترسی داشت که هیچ، در غیر ایصورت یک response دیگه برگردونید و یا کاربر را به صفحه AccessDenied هدایت کنید.
البته باید توجه داشته باشید که در روش پیشهادی در پست قبلی اگر تعداد کاربران شما زیاد باشند و تعداد تراکنش های برنامه هم بالا باشه، برنامه باید دائما بانک اطلاعاتی را بررسی کنه که میتونه راندمان برنامه را پایین بیاره. برای جلوگیری از ارجاعات زیادی به بانک اطلاعاتی میتونید بعد از ورود کاربر به برنامه، یکبار اطلاعات دسترسی کاربر را در بانک اطلاعات درون حافظه (In-Memory) مانند redis بارگذاری کنید و عملیات بررسی سطح دسترسی کاربر را از این محل انجام بدید. هر زمان که دسترسی کاربر توسط مدیر برنامه نیز اصلاح شد، باید اطلاعات redis نیز اصلاح شوند.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)