eitaa logo
پروژه ASP.Net Core MVC (وب و سی شارپ)
120 دنبال‌کننده
168 عکس
38 ویدیو
376 فایل
❁﷽❁ آموزش 📖 برنامه نویسی ASP.Net Core MVC (وب و سی شارپ) Admin: @alialirezapanahi برنامه نویسی برنامه نویسی سی شارپ eitaa.com/sisharpapp برنامه نویسی وب eitaa.com/aspdatnet ویراستی virasty.com/alialirezapanahi آپارات aparat.com/alialirezapanahi
مشاهده در ایتا
دانلود
پروژه ASP.Net Core MVC (وب و سی شارپ)
درس آخر فروشگاه مدیریت سفارش فروشگاه و مدیریت پرداخت ها و Authorization و Authentication در ادمین
این کد مربوط به پیکربندی احراز هویت (Authentication) و مجوزها (Authorization) در پروژه ASP.NET Core است. این تنظیمات در فایل `Program.cs`استفاده می‌شوند تا مکانیزم امنیتی برای مدیریت کاربران و دسترسی‌ها فعال شود. بیایید هر بخش از کد را بررسی کنیم: --- ### ۱. تنظیم مجوزها (Authorization) #### بخش `AddAuthorization`: csharp builder.Services.AddAuthorization(options => { options.AddPolicy(UserRoles.Admin, policy => policy.RequireRole(UserRoles.Admin)); options.AddPolicy(UserRoles.Customer, policy => policy.RequireRole(UserRoles.Customer)); options.AddPolicy(UserRoles.Operator, policy => policy.RequireRole(UserRoles.Operator)); }); #### عملکرد: - افزودن سیاست‌های دسترسی: - در این بخش، سه سیاست دسترسی بر اساس نقش‌های
Admin`، `Customer
و
Operator
تعریف شده‌اند. - `AddPolicy`: برای تعریف سیاست‌های دسترسی استفاده می‌شود. - `RequireRole`: مشخص می‌کند که کاربر باید دارای نقش خاصی باشد تا بتواند از این سیاست استفاده کند. #### مثال: - اگر بخواهید دسترسی به یک اکشن را محدود به کاربران با نقش
Admin
کنید، از سیاست تعریف‌شده استفاده می‌کنید: csharp [Authorize(Policy = UserRoles.Admin)] public IActionResult AdminOnly() { return View(); } #### کاربرد سیاست‌ها: - سیاست‌ها به صورت انعطاف‌پذیر به اکشن‌ها یا کنترلرها اعمال می‌شوند. - می‌توانید سیاست‌های پیچیده‌تر تعریف کنید (مثلاً بررسی شرایط مختلف). --- ### ۲. تنظیم احراز هویت (Authentication) #### بخش `AddAuthentication`: csharp builder.Services.AddAuthentication(options => { options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme; }); #### عملکرد: - افزودن سیستم احراز هویت: - این بخش مکانیزم احراز هویت را فعال می‌کند. - `DefaultSignInScheme`: مشخص می‌کند که از کوکی‌ها برای ورود کاربر استفاده شود. - `DefaultAuthenticateScheme`: تنظیمات مربوط به احراز هویت را مشخص می‌کند. - `DefaultChallengeScheme`: مشخص می‌کند که هنگام درخواست ورود، از کدام سیستم استفاده شود. --- ### ۳. تنظیمات کوکی‌ها #### بخش `AddCookie`: csharp .AddCookie(options => { options.LoginPath = new PathString("/Authentication/Signin"); options.ExpireTimeSpan = TimeSpan.FromMinutes(5.0); options.AccessDeniedPath = new PathString("/Authentication/Signin"); }); #### عملکرد: - پیکربندی سیستم کوکی‌ها: - `LoginPath`: مسیر نمایش صفحه ورود کاربر. اگر کاربر احراز هویت نشده باشد و به مسیری که نیاز به ورود دارد دسترسی پیدا کند، به این مسیر هدایت می‌شود. - مثال:
/Authentication/Signin
. - `ExpireTimeSpan`: مدت زمان انقضای کوکی‌ها. در اینجا کوکی پس از 5 دقیقه منقضی می‌شود. - `AccessDeniedPath`: مسیر نمایش صفحه دسترسی غیرمجاز. اگر کاربر احراز هویت شده اما دسترسی به مسیر خاصی ندارد، به این مسیر هدایت می‌شود. --- ### ۴. فرآیند کلی کار 1. تعریف نقش‌ها و سیاست‌ها: - در بخش `AddAuthorization`، سیاست‌های مبتنی بر نقش‌ها تعریف می‌شوند. - این سیاست‌ها در کنترلرها و اکشن‌ها برای محدود کردن دسترسی استفاده می‌شوند. 2. احراز هویت و کوکی‌ها: - سیستم احراز هویت بر اساس کوکی‌ها پیکربندی شده است. - مسیر ورود و دسترسی غیرمجاز مشخص شده‌اند. --- ### ۵. نکات بهبود و بهترین روش‌ها 1. مدت زمان انقضای کوکی: - اگر سیستم برای استفاده طولانی‌مدت طراحی شده است، مدت زمان انقضای کوکی‌ها را افزایش دهید. - یا قابلیت
Remember Me
اضافه کنید. 2. اضافه کردن صفحه دسترسی غیرمجاز: - صفحه‌ای مخصوص برای نمایش پیام "دسترسی غیرمجاز" ایجاد کنید و در
AccessDeniedPath
استفاده کنید: csharp options.AccessDeniedPath = new PathString("/Authentication/AccessDenied"); 3. مدیریت نقش‌ها در دیتابیس: - تعریف نقش‌ها در کد (Hardcoded) ممکن است محدود باشد. به جای آن، نقش‌ها را در پایگاه داده مدیریت کنید و از سیستم
RoleManager
استفاده کنید. --- ### جمع‌بندی این کد تنظیمات اساسی برای مدیریت احراز هویت و دسترسی‌ها در یک پروژه ASP.NET Core فراهم می‌کند. از کوکی‌ها برای مدیریت وضعیت ورود کاربران استفاده می‌شود و سیاست‌های مبتنی بر نقش‌ها برای کنترل دسترسی تعریف شده‌اند. این رویکرد ساده و مؤثر است و می‌تواند به راحتی گسترش یابد.
سلام به همه دوستان من آموزش ها را در سایت باگتو دنبال کردم و پروژه من با دات نت 8 نوشتم و در کانالم به اشتراک گذاشتم شما برای یاد گیری اگر نیاز به آموزش ویدئو داشتید وارد سایت باگتو شوید و ویدئو های رایگان را دانلود کنید و آموزش ها را طبق پروژه من دنبال کند به خطا نخورید https://bugeto.net/courses/free-introductory-asp-dot-net-core-training-course
یک نکته مهم یادم رفت این هست که یک سوال از هوش مصنوعی پرسیدم که چگونه پروژه من را دیگران به درستی اجرا و تست کند برای اطمینان از اینکه فرد دیگری بتواند پروژه شما را به درستی اجرا و تست کند، باید چند مرحله را دنبال کند. در اینجا یک راهنمای کامل برای راه‌اندازی پروژه شما آورده شده است: ### ۱. بررسی نسخه ویژوال استودیو نصب ویژوال استودیو 2022 یا جدیدتر - مطمئن شوید که ویژوال استودیو 2022 یا جدیدتر نصب شده باشد. - در حین نصب، اطمینان حاصل کنید که بسته‌های مربوط به توسعه وب با ASP.NET و توسعه دات نت (با استفاده از دات نت 8) نصب شده باشند. ### ۲. نصب SQL Server نصب SQL Server - اگر SQL Server نصب نشده است، می‌تواند از [SQL Server Express] https://www.microsoft.com/en-us/sql-server/sql-server-downloads که نسخه رایگان SQL Server است، استفاده کند. - همچنین می‌تواند از [SQL Server Management Studio (SSMS)] https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms برای مدیریت پایگاه داده استفاده کند. ### ۳. تنظیمات Connection String ویرایش Connection String در فایل appsettings.json - فایل appsettings.json را در پروژه پیدا کنید و مطمئن شوید که Connection String به درستی تنظیم شده است. به عنوان مثال: json { "ConnectionStrings": { "DefaultConnection": "Server=.\\SQLEXPRESS;Database=ChartProjectDB;Trusted_Connection=True;Encrypt=False;" } } یا در program.cs string connectionString = @"Server=.\SQLEXPRESS; Database=Test_StoreDb; Integrated Security=True; TrustServerCertificate=True;"; builder.Services.AddDbContext<DataBaseContext>(options => options.UseSqlServer(connectionString)); در -
Server=.;
برای اتصال به یک SQL Server محلی استفاده می‌شود. اگر SQL Server در یک سرور دیگر نصب شده باشد، باید نام سرور جایگزین شود.
Server=.;
یا
Server=.\\SQLEXPRESS;
### ۴. اجرای Migrations اجرای Migrations برای ایجاد جداول در پایگاه داده 1. باز کردن Package Manager Console: - به ویژوال استودیو بروید و از منوی Tools، گزینه NuGet Package Manager و سپس Package Manager Console را انتخاب کنید. 2. اجرای دستور Update-Database: - در کنسول باز شده، دستور زیر را برای اعمال Migrations و ایجاد جداول در پایگاه داده اجرا کنید: powershell Update-Database ### ۵. اجرای پروژه اجرای پروژه در ویژوال استودیو - حالا می‌تواند پروژه را با کلیک بر روی دکمه
Run
یا فشار دادن کلید
F5
اجرا کند. ### نکات اضافی - نصب بسته‌های مورد نیاز: قبل از اجرای پروژه، اطمینان حاصل کند که همه بسته‌های مورد نیاز با اجرای دستور
dotnet restore
در کنسول مدیریت بسته‌ها نصب شده باشند. - بررسی فایل‌های لاگ: اگر باز هم خطاها ادامه داشت، فایل‌های لاگ را بررسی کند تا جزئیات خطاها را مشاهده کند و بتواند مشکلات را بهتر شناسایی کند.