Blazor Webapp (8.0) — реализация функции тайм-аута сеанса.C#

Место общения программистов C#
Ответить
Anonymous
 Blazor Webapp (8.0) — реализация функции тайм-аута сеанса.

Сообщение Anonymous »

Я новичок в blazor и реализации функции таймаута сеанса (20 минут бездействия). Это веб-приложение Blazor (8.0), использующее AzureADB2C для аутентификации и сервер SQL для авторизации ролей.
Существует так много версий .net, что очень сложно идентифицировать правильный вариант для веб-приложения 8.0. Я искал повсюду на форумах stackoverflow (большинство результатов — это WebAssembly или серверный проект) и добавил следующие строки в program.cs, но это не работает.

Код: Выделить всё

builder.Services.ConfigureApplicationCookie(ops =>
{
ops.ExpireTimeSpan = TimeSpan.FromMinutes(20);
ops.SlidingExpiration = true;
});

//Here is appsettings.json
{
"AzureAdB2c": {
"callbackPath": "/signin-oidc",
"signedOutCallbackPath": "/signout-callback-oidc",
"clientId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
"domain": "xxxxxxxxb2cdev.onmicrosoft.com",
"instance": "https://xxxxxxxxb2cdev.b2clogin.com/",
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
"SignUpSignInPolicyId": "B2C_1A_CC24PORTAL",
"RedirectUri": "https://dev-xxxxxxxx-ui-eus-as.azurewebsites.net"
},
"BuildConfiguration": "DEV",
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}

//Here is logout link in NavMenu.razor


 Logout


//Here is program.cs

using Blazored.LocalStorage;
using CC24_UI.Components;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.Identity.Web;
using Microsoft.Identity.Web.UI;
using System.Runtime;
using Serilog;
using Telerik.Blazor.Services;

var builder = WebApplication.CreateBuilder(args);

Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.WriteTo.File(@"C:\home\logfiles\CC24.txt")
.CreateLogger();

Log.Information("builder environment: {0}", builder.Environment.EnvironmentName);

builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(options =>
{
builder.Configuration.Bind("AzureAdB2c", options);
options.Events.OnSignedOutCallbackRedirect = async context =>
{
context.Response.Redirect("http://www.microsoft.com");
context.HandleResponse();
await Task.CompletedTask;
};
});

builder.Services.AddControllersWithViews()
.AddMicrosoftIdentityUI();

builder.Services.AddAuthorization(options =>
{
// By default, all incoming requests will be authorized according to the default policy
options.FallbackPolicy = options.DefaultPolicy;
});

builder.Services.AddRazorPages().AddMicrosoftIdentityUI();

builder.Services.AddRazorComponents()
.AddInteractiveServerComponents().AddMicrosoftIdentityConsentHandler();

builder.Services.AddServerSideBlazor();

builder.Services.ConfigureApplicationCookie(ops =>
{
ops.ExpireTimeSpan = TimeSpan.FromMinutes(20);
ops.SlidingExpiration = true;
});

builder.Services.AddTelerikBlazor();

builder.Services.AddSingleton();

builder.Services.AddBlazoredLocalStorage();

builder.Services.AddHttpContextAccessor();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error", createScopeForErrors: true);
// The default HSTS value is 30 days.  You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();
app.MapRazorComponents().AddInteractiveServerRenderMode();
app.UseAntiforgery();

app.Run();

Заранее спасибо. Я очень ценю вашу помощь и указания по управлению временем ожидания сеанса пользователя.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ctionality
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»