نحوه کانفیگ Authentication بصورت دستی در Blazor چگونه است؟
با سلام
دوستان ما در Asp.Net Core 3.1 کد زیر را در فایل Startup قرار میدادیم برای استفاده از کوکی در هنگام لاگین شدن کاربر ...
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
}).AddCookie(options =>
{
options.LoginPath = "/Account/Login";
options.LogoutPath = "/Account/LogOut";
options.ExpireTimeSpan = TimeSpan.FromMinutes(43200); // 1 month
});
می خواستم بدونم در Blazor روش تغییر کرده یا از همین میشه استفاده کرد؟
اگر روش خاصی یا آموزشی در این مورد دارید ممنون میشم راهنمایی کنید؟
با تشکر
پاسخ هوش مصنوعی
در Blazor، شما هنوز هم می توانید از کوکی برای تأیید هویت و احراز هویت استفاده کنید، و کدی که در ASP.NET Core 3.1 استفاده می کردید، تقریباً مشابه است. برای پیکربندی احراز هویت دستی در Blazor، می توانید مراحل زیر را دنبال کنید.
در ابتدا، وارد کردن سرویس های مورد نیاز را در فایل Startup.cs
انجام دهید:
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddCookie(options =>
{
options.LoginPath = "/Account/Login";
options.LogoutPath = "/Account/LogOut";
options.ExpireTimeSpan = TimeSpan.FromMinutes(43200); // 1 ماه
});
services.AddRazorPages();
services.AddServerSideBlazor();
}
سپس در متد Configure
نیز احراز هویت را اضافه کنید:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication(); // اضافه کردن این خط
app.UseAuthorization(); // اضافه کردن این خط
app.UseEndpoints(endpoints =>
{
endpoints.MapBlazorHub();
endpoints.MapFallbackToPage("/_Host");
});
}
بعد از این کانفیگ، می توانید از احراز هویت با استفاده از کوکی در Blazor استفاده کنید. همچنین توجه داشته باشید که می توانید از Authorization
و Authentication
در صفحات و کامپوننت های Blazor نیز استفاده کنید تا فقط کاربران احراز هویت شده به محتوای خاص دسترسی داشته باشند.
نکته اول در مورد سوال شما : "می خواستم بدونم در Blazor روش تغییر کرده یا از همین میشه استفاده کرد؟"
خب در این مورد بهترین راه این هست که یک پروژه Blazor ایجاد کنید و دقیقا همین کدها رو تست کنید ببینید روش کار توی Blazor با Asp.net Core یکی هست یا نیست. اگر بدون خطا کار کرد که یکیه.
اما در مورد کدهایی برای احراز هویت در Blazor نوشتید باید بگم وقتی شما از Identity استفاده می کنید دیگه خیلی از تنظیمات به صورت پیش فرض انجام میشه و نیازی نیست خودتون کوکی ها رو تنظیم کنید. یعنی کدی که شما نوشتید یک کد عمومی نیست و بنابر سلیقه برنامه نویس یا شرایط پروژه میتونه نوشته بشه یا نه.
در مورد احراز هویت در Blazor لینک زیر رو مطالعه کنید.
نحوه احراز هویت در Blazor Server App
ضمنا توی دوره آموزشی رایگان زیر به طور کاملا پروژه محور نحوه ایجاد ساخت و استفاده از یک اپ Blazor به همراه Authentication آموزش داده شده.
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- تفاوت بین Blazor و Angular و react.js چیست ؟
- Blazor چیست ؟ کاربرد Blazor در وب چیست ؟
- فرق بین (Blazor Client (web Assembly و Blazor Server چیست ؟
- پروژه از نوع Blazor چگونه کار می کند؟
- نمایش فرم مودال (Pop up) در بلیزر چگونه است ؟
- کامپوننت (Component) در بلیزر (Blazor) چیست ؟ کاربرد Component چیست ؟
- ارسال مقادیر بین کامپوننت ها در Blazor چگونه می باشد ؟ ارتباط بین کامپوننت ها در بلیزر
- کاربرد پارامتر RenderFragment در Blazor چیست ؟
- دلیل خطای component name cannot start with a lowercase charachter در Blazor
- مفهوم و کاربرد Event CallBack در Blazor چیست ؟