InteractiveServer 模式正常.
blazor
using System;
using System.IO;
using Blazorise.Bootstrap5;
using Blazorise.Icons.FontAwesome;
using Medallion.Threading;
using Medallion.Threading.Redis;
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.AspNetCore.Http;
using Master9.Localization;
using Master9.MultiTenancy;
using Volo.Abp;
using Volo.Abp.AspNetCore.Components.Web.Theming.Routing;
using Volo.Abp.AspNetCore.Mvc.Localization;
using Volo.Abp.AspNetCore.Mvc.UI.Bundling;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared;
using Volo.Abp.AspNetCore.Serilog;
using Volo.Abp.Autofac;
using Volo.Abp.AutoMapper;
using Volo.Abp.Localization;
using Volo.Abp.Modularity;
using Volo.Abp.Swashbuckle;
using Volo.Abp.UI.Navigation;
using Volo.Abp.UI.Navigation.Urls;
using Volo.Abp.VirtualFileSystem;
using Microsoft.AspNetCore.DataProtection;
using Microsoft.Extensions.Options;
using Microsoft.IdentityModel.Protocols.OpenIdConnect;
using Microsoft.OpenApi.Models;
using Master9.Blazor.Client;
using Master9.Blazor.Client.Navigation;
using Master9.Blazor.Components;
using StackExchange.Redis;
using Volo.Abp.AspNetCore.Authentication.OpenIdConnect;
using Volo.Abp.AspNetCore.Components.Web;
using Volo.Abp.AspNetCore.Mvc.Client;
using Volo.Abp.Caching;
using Volo.Abp.Caching.StackExchangeRedis;
using Volo.Abp.AspNetCore.Components.WebAssembly.Theming.Bundling;
using Volo.Abp.AspNetCore.Components.Web.LeptonXTheme;
using Volo.Abp.AspNetCore.Components.Server.LeptonXTheme;
using Volo.Abp.AspNetCore.Components.Server.LeptonXTheme.Bundling;
using Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXTheme.Bundling;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX.Bundling;
using Volo.Abp.LeptonX.Shared;
using Volo.Abp.DistributedLocking;
using Volo.Abp.Http.Client.Web;
using Volo.Abp.Http.Client.IdentityModel.Web;
using Volo.Abp.Security.Claims;
using Volo.Abp.Account.LinkUsers;
using Volo.Abp.Account.Pro.Admin.Blazor.Server;
using Volo.Abp.Account.Pro.Public.Blazor.Server;
using Volo.Abp.Account.Public.Web.Impersonation;
using Volo.Abp.Account.Pro.Public.Blazor.WebAssembly.Bundling;
using Volo.Abp.Identity.Pro.Blazor;
using Volo.Abp.Identity.Pro.Blazor.Server;
using Volo.Abp.AuditLogging.Blazor.Server;
using Volo.Abp.AuditLogging.Blazor.WebAssembly.Bundling;
using Volo.Abp.Gdpr.Blazor.Extensions;
using Volo.Abp.Gdpr.Blazor.Server;
using Volo.Abp.LanguageManagement.Blazor.Server;
using Volo.Abp.OpenIddict.Pro.Blazor.Server;
using Volo.Abp.TextTemplateManagement.Blazor.Server;
using Volo.Saas.Host;
using Volo.Saas.Host.Blazor;
using Volo.Saas.Host.Blazor.Server;
using Volo.Saas.Host.Blazor.WebAssembly.Bundling;
using FollowUp.Blazor.Server;
using Contract.Blazor.Server;
using System.Net.Http;
using DevExpress.Blazor;
using Volo.Abp.AspNetCore.Mvc.AntiForgery;
using Volo.Abp.FeatureManagement;
namespace Master9.Blazor;
[DependsOn(
typeof(AbpCachingStackExchangeRedisModule),
typeof(AbpDistributedLockingModule),
typeof(AbpAutofacModule),
typeof(AbpAccountPublicBlazorWebAssemblyBundlingModule),
typeof(AbpAccountPublicWebImpersonationModule),
typeof(AbpAccountAdminBlazorServerModule),
typeof(AbpAccountPublicBlazorServerModule),
typeof(AbpIdentityProBlazorServerModule),
typeof(TextTemplateManagementBlazorServerModule),
typeof(AbpAuditLoggingBlazorServerModule),
typeof(AbpAuditLoggingBlazorWebAssemblyBundlingModule),
typeof(AbpGdprBlazorServerModule),
typeof(AbpOpenIddictProBlazorServerModule),
typeof(LanguageManagementBlazorServerModule),
typeof(SaasHostBlazorServerModule),
typeof(SaasHostBlazorWebAssemblyBundlingModule),
//typeof(LeptonXThemeManagementBlazorServerModule),
typeof(AbpAspNetCoreComponentsServerLeptonXThemeModule),
typeof(AbpAspNetCoreComponentsWebAssemblyLeptonXThemeBundlingModule),
typeof(AbpAspNetCoreMvcUiLeptonXThemeModule),
typeof(AbpFeatureManagementHttpApiModule),
typeof(AbpSwashbuckleModule),
typeof(AbpAspNetCoreSerilogModule),
typeof(AbpAspNetCoreMvcClientModule),
typeof(AbpAspNetCoreAuthenticationOpenIdConnectModule),
typeof(AbpHttpClientWebModule),
typeof(AbpHttpClientIdentityModelWebModule),
typeof(Master9HttpApiClientModule)
)]
[DependsOn(typeof(FollowUpBlazorServerModule))]
[DependsOn(typeof(ContractBlazorServerModule))]
public class Master9BlazorModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
context.Services.PreConfigure<AbpMvcDataAnnotationsLocalizationOptions>(options =>
{
options.AddAssemblyResource(
typeof(Master9Resource),
typeof(Master9DomainSharedModule).Assembly,
typeof(Master9ApplicationContractsModule).Assembly,
typeof(Master9BlazorModule).Assembly
);
});
PreConfigure<AbpAspNetCoreComponentsWebOptions>(options =>
{
options.IsBlazorWebApp = true;
});
}
public override void ConfigureServices(ServiceConfigurationContext context)
{
var hostingEnvironment = context.Services.GetHostingEnvironment();
var configuration = context.Services.GetConfiguration();
if (!configuration.GetValue<bool>("App:DisablePII"))
{
Microsoft.IdentityModel.Logging.IdentityModelEventSource.ShowPII = true;
Microsoft.IdentityModel.Logging.IdentityModelEventSource.LogCompleteSecurityArtifact = true;
}
// Add services to the container.
context.Services.AddRazorComponents()
.AddInteractiveServerComponents()
.AddInteractiveWebAssemblyComponents();
context.Services.AddDevExpressBlazor(configure => configure.BootstrapVersion = BootstrapVersion.v5);
ConfigureUrls(configuration);
ConfigureBundles();
ConfigureAuthentication(context, configuration);
ConfigureImpersonation(context, configuration);
ConfigureAutoMapper();
ConfigureVirtualFileSystem(hostingEnvironment);
ConfigureSwaggerServices(context.Services);
ConfigureCache(configuration);
ConfigureDataProtection(context, configuration, hostingEnvironment);
ConfigureDistributedLocking(context, configuration);
ConfigureBlazorise(context);
ConfigureRouter();
ConfigureMenu(configuration);
ConfigureCookieConsent(context);
ConfigureTheme();
}
private void ConfigureCookieConsent(ServiceConfigurationContext context)
{
context.Services.AddAbpCookieConsent(options =>
{
options.IsEnabled = true;
options.CookiePolicyUrl = "/CookiePolicy";
options.PrivacyPolicyUrl = "/PrivacyPolicy";
});
}
private void ConfigureTheme()
{
Configure<LeptonXThemeOptions>(options =>
{
options.DefaultStyle = LeptonXStyleNames.System;
});
Configure<LeptonXThemeBlazorOptions>(options =>
{
options.Layout = LeptonXBlazorLayouts.SideMenu;
});
}
private void ConfigureUrls(IConfiguration configuration)
{
Configure<AppUrlOptions>(options =>
{
options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"];
});
Configure<AbpAccountLinkUserOptions>(options =>
{
options.LoginUrl = configuration["AuthServer:Authority"];
});
}
private void ConfigureBundles()
{
Configure<AbpBundlingOptions>(options =>
{
// Blazor Web App
options.Parameters.InteractiveAuto = true;
// MVC UI
options.StyleBundles.Configure(
LeptonXThemeBundles.Styles.Global,
bundle =>
{
bundle.AddFiles("/global-styles.css");
}
);
options.ScriptBundles.Configure(
LeptonXThemeBundles.Scripts.Global,
bundle =>
{
bundle.AddFiles("/global-scripts.js");
}
);
// Blazor UI
options.StyleBundles.Configure(
BlazorLeptonXThemeBundles.Styles.Global,
bundle =>
{
bundle.AddFiles("/global-styles.css");
//bundle.AddFiles("/blazor-global-styles.css");
//You can remove the following line if you don't use Blazor CSS isolation for components
//bundle.AddFiles(new BundleFile("/Master9.Blazor.styles.css", true));
//bundle.AddFiles(new BundleFile("/Master9.Blazor.Client.styles.css", true));
}
);
});
Configure<AbpBundlingOptions>(options =>
{
var globalStyles = options.StyleBundles.Get(BlazorWebAssemblyStandardBundles.Styles.Global);
globalStyles.AddContributors(typeof(Master9StyleBundleContributor));
var globalScripts = options.ScriptBundles.Get(BlazorWebAssemblyStandardBundles.Scripts.Global);
globalScripts.AddContributors(typeof(Master9ScriptBundleContributor));
options.Parameters["LeptonXTheme.Layout"] = "side-menu"; // side-menu or top-menu
});
}
}
已发送
已发送.目前主要是登陆后状态丢失
你好 blazor web app项目 登陆后进入系统,几秒后自动跳转回认证网站. 日志已经发到邮箱. web app :本机 https://localhost:44333 host :远程 https://ourdomain:28445 auth :远程 https://ourdomain:28443
从代码上看直接重定向到了首页,触发登陆.没有相关请求登出操作,不清楚为什么 已发送代码到邮箱
我访问https://master.aysdlrmyy.com:28443/Passwordless/Login?userId=admin&token=123 后自动跳转到blazor的"/"
authserver
public class PasswordlessController : AbpController
{
protected IdentityUserManager UserManager { get; }
protected AbpSignInManager SignInManager { get; }
public PasswordlessController(IdentityUserManager userManager, AbpSignInManager signInManager)
{
UserManager = userManager;
SignInManager = signInManager;
}
[HttpGet("Login")]
public virtual async Task<IActionResult> Login(string token, string userId)
{
var user = await UserManager.FindByNameAsync(userId);
//测试用 只使用userId 后台直接获取token
var token2 = await UserManager.GenerateUserTokenAsync(user, "PasswordlessLoginProvider",
"passwordless-auth");
var isValid = await UserManager.VerifyUserTokenAsync(user, "PasswordlessLoginProvider", "passwordless-auth", token2);
if (!isValid)
{
throw new UnauthorizedAccessException("The token " + token + " is not valid for the user " + userId);
}
await UserManager.UpdateSecurityStampAsync(user);
await SignInManager.SignInAsync(user, isPersistent: false);
var blazorserver = "http://master.aysdlrmyy.com:28444";
return Redirect(blazorserver);
}
}
blazor
@page "/"
@inherits Master9ComponentBase
@using Contract.FlowUsers
@using DevExpress.Blazor
@using Mc;
@using Microsoft.AspNetCore.Authorization
@inject IFlowUsersAppService FlowUsersAppService
@attribute [Authorize]
<h1>
123
</h1>`
添加后没有报错了 但是会反复触发认证
2025-09-18 11:53:30.764 +08:00 [INF] AuthenticationScheme: Cookies signed out. 2025-09-18 11:53:30.765 +08:00 [INF] Executing SignOutResult with authentication schemes (["oidc"]). 2025-09-18 11:53:30.765 +08:00 [INF] AuthenticationScheme: oidc signed out. 2025-09-18 11:53:30.765 +08:00 [INF] Executed action Master9.Blazor.Controllers.AccountController.LogoutAsync (Master9.Blazor) in 1.645ms 2025-09-18 11:53:30.765 +08:00 [INF] Executed endpoint 'Master9.Blazor.Controllers.AccountController.LogoutAsync (Master9.Blazor)' 2025-09-18 11:53:30.765 +08:00 [INF] Request finished HTTP/1.1 GET http://master.aysdlrmyy.com:28444/Account/Logout - 302 null null 2.9495ms 2025-09-18 11:53:30.770 +08:00 [INF] Request starting HTTP/1.1 GET http://master.aysdlrmyy.com:28444/_content/Blazorise/vendors/jsencrypt.js?v=1.6.2.0 - null null 2025-09-18 11:53:30.770 +08:00 [INF] Request starting HTTP/1.1 GET http://master.aysdlrmyy.com:28444/_content/Blazorise/vendors/sha512.js?v=1.6.2.0 - null null 2025-09-18 11:53:30.770 +08:00 [INF] Executing endpoint 'Microsoft.AspNetCore.Routing.RouteEndpoint' 2025-09-18 11:53:30.770 +08:00 [INF] Executing endpoint 'Microsoft.AspNetCore.Routing.RouteEndpoint' 2025-09-18 11:53:30.770 +08:00 [INF] The file _content/Blazorise/vendors/sha512.js was not modified 2025-09-18 11:53:30.770 +08:00 [INF] The file _content/Blazorise/vendors/jsencrypt.js was not modified 2025-09-18 11:53:30.770 +08:00 [INF] Executed endpoint 'Microsoft.AspNetCore.Routing.RouteEndpoint' 2025-09-18 11:53:30.770 +08:00 [INF] Executed endpoint 'Microsoft.AspNetCore.Routing.RouteEndpoint' 2025-09-18 11:53:30.770 +08:00 [INF] Request finished HTTP/1.1 GET http://master.aysdlrmyy.com:28444/_content/Blazorise/vendors/sha512.js?v=1.6.2.0 - 304 null text/javascript 0.6231ms 2025-09-18 11:53:30.770 +08:00 [INF] Request finished HTTP/1.1 GET http://master.aysdlrmyy.com:28444/_content/Blazorise/vendors/jsencrypt.js?v=1.6.2.0 - 304 null text/javascript 0.7513ms 2025-09-18 11:53:30.785 +08:00 [INF] Request starting HTTP/1.1 GET http://master.aysdlrmyy.com:28444/signout-callback-oidc?state=CfDJ8D2ygYFMKaZGvAEpZ3bmx8mpxka9ME4C9_R_kPwnxdQmQMtUUzUlU8U5mlflyQPoFlbyPPrLyu8RDUIaH4pkgGSD2KIpU75HGeHihfjzq_OUXVTcHK74pYeXreKlgTGoId_rywR_ykAcc6NxzHrY2zA - null null 2025-09-18 11:53:30.786 +08:00 [INF] Request finished HTTP/1.1 GET http://master.aysdlrmyy.com:28444/signout-callback-oidc?state=CfDJ8D2ygYFMKaZGvAEpZ3bmx8mpxka9ME4C9_R_kPwnxdQmQMtUUzUlU8U5mlflyQPoFlbyPPrLyu8RDUIaH4pkgGSD2KIpU75HGeHihfjzq_OUXVTcHK74pYeXreKlgTGoId_rywR_ykAcc6NxzHrY2zA - 302 null null 0.5648ms 2025-09-18 11:53:30.790 +08:00 [INF] Request starting HTTP/1.1 GET http://master.aysdlrmyy.com:28444/ - null null 2025-09-18 11:53:30.790 +08:00 [INF] Executing endpoint '/ (/)' 2025-09-18 11:53:30.794 +08:00 [INF] Authorization failed. These requirements were not met: PermissionRequirement: SettingManagement.Emailing 2025-09-18 11:53:30.794 +08:00 [INF] Authorization failed. These requirements were not met: PermissionRequirement: AbpAccount.SettingManagement
auth
2025-09-18 11:52:57.339 +08:00 [INF] Request starting HTTP/2 GET https://master.aysdlrmyy.com:28443/Passwordless/Login?userId=admin&token=123 - null null 2025-09-18 11:52:57.343 +08:00 [INF] Executing endpoint 'Master9.Custom.PasswordlessController.Login (Master9.AuthServer)' 2025-09-18 11:52:57.352 +08:00 [INF] Route matched with {action = "Login", controller = "Passwordless", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task1[Microsoft.AspNetCore.Mvc.IActionResult] Login(System.String, System.String) on controller Master9.Custom.PasswordlessController (Master9.AuthServer).
2025-09-18 11:52:58.325 +08:00 [WRN] No store type was specified for the decimal property 'AmountMax' on entity type 'ContractAmount'. This will cause values to be silently truncated if they do not fit in the default precision and scale. Explicitly specify the SQL server column type that can accommodate all the values in 'OnModelCreating' using 'HasColumnType', specify precision and scale using 'HasPrecision', or configure a value converter using 'HasConversion'.
2025-09-18 11:52:58.325 +08:00 [WRN] No store type was specified for the decimal property 'AmountMini' on entity type 'ContractAmount'. This will cause values to be silently truncated if they do not fit in the default precision and scale. Explicitly specify the SQL server column type that can accommodate all the values in 'OnModelCreating' using 'HasColumnType', specify precision and scale using 'HasPrecision', or configure a value converter using 'HasConversion'.
2025-09-18 11:52:58.325 +08:00 [WRN] No store type was specified for the decimal property 'Amount' on entity type 'ContractMain'. This will cause values to be silently truncated if they do not fit in the default precision and scale. Explicitly specify the SQL server column type that can accommodate all the values in 'OnModelCreating' using 'HasColumnType', specify precision and scale using 'HasPrecision', or configure a value converter using 'HasConversion'.
2025-09-18 11:52:58.325 +08:00 [WRN] No store type was specified for the decimal property 'Amount' on entity type 'DefaultRecord'. This will cause values to be silently truncated if they do not fit in the default precision and scale. Explicitly specify the SQL server column type that can accommodate all the values in 'OnModelCreating' using 'HasColumnType', specify precision and scale using 'HasPrecision', or configure a value converter using 'HasConversion'.
2025-09-18 11:52:58.325 +08:00 [WRN] No store type was specified for the decimal property 'Amount' on entity type 'PayRecord'. This will cause values to be silently truncated if they do not fit in the default precision and scale. Explicitly specify the SQL server column type that can accommodate all the values in 'OnModelCreating' using 'HasColumnType', specify precision and scale using 'HasPrecision', or configure a value converter using 'HasConversion'.
2025-09-18 11:52:58.325 +08:00 [WRN] No store type was specified for the decimal property 'Proportion' on entity type 'PayTypeProgress'. This will cause values to be silently truncated if they do not fit in the default precision and scale. Explicitly specify the SQL server column type that can accommodate all the values in 'OnModelCreating' using 'HasColumnType', specify precision and scale using 'HasPrecision', or configure a value converter using 'HasConversion'.
2025-09-18 11:52:58.325 +08:00 [WRN] No store type was specified for the decimal property 'Amount' on entity type 'WarrantyPeriod'. This will cause values to be silently truncated if they do not fit in the default precision and scale. Explicitly specify the SQL server column type that can accommodate all the values in 'OnModelCreating' using 'HasColumnType', specify precision and scale using 'HasPrecision', or configure a value converter using 'HasConversion'.
2025-09-18 11:52:58.325 +08:00 [WRN] No store type was specified for the decimal property 'PayedAmount' on entity type 'WarrantyPeriod'. This will cause values to be silently truncated if they do not fit in the default precision and scale. Explicitly specify the SQL server column type that can accommodate all the values in 'OnModelCreating' using 'HasColumnType', specify precision and scale using 'HasPrecision', or configure a value converter using 'HasConversion'.
2025-09-18 11:52:58.325 +08:00 [WRN] No store type was specified for the decimal property 'RemainingAmount' on entity type 'WarrantyPeriod'. This will cause values to be silently truncated if they do not fit in the default precision and scale. Explicitly specify the SQL server column type that can accommodate all the values in 'OnModelCreating' using 'HasColumnType', specify precision and scale using 'HasPrecision', or configure a value converter using 'HasConversion'.
2025-09-18 11:52:59.746 +08:00 [INF] Request starting HTTP/2 GET https://master.aysdlrmyy.com:28443/connect/logout?post_logout_redirect_uri=http%3A%2F%2Fmaster.aysdlrmyy.com%3A28444%2Fsignout-callback-oidc&state=CfDJ8D2ygYFMKaZGvAEpZ3bmx8nlI0RZ1T2yW3STyka3CVCJdWCeCIQ5xjsJN2E27Dbw0Ij7SykGqpfp1HnIY2SxynCmU8n5LBClCDG86__9HwEUjnVPTboCwx4an3s14n0xEcF6GLCZGb3XMNh_PNfWzb4&x-client-SKU=ID_NET9_0&x-client-ver=8.1.0.0 - null null
2025-09-18 11:52:59.747 +08:00 [INF] The request URI matched a server endpoint: "Logout".
2025-09-18 11:52:59.748 +08:00 [INF] The logout request was successfully extracted: {
"post_logout_redirect_uri": "http://master.aysdlrmyy.com:28444/signout-callback-oidc",
"state": "CfDJ8D2ygYFMKaZGvAEpZ3bmx8nlI0RZ1T2yW3STyka3CVCJdWCeCIQ5xjsJN2E27Dbw0Ij7SykGqpfp1HnIY2SxynCmU8n5LBClCDG86__9HwEUjnVPTboCwx4an3s14n0xEcF6GLCZGb3XMNh_PNfWzb4",
"x-client-SKU": "ID_NET9_0",
"x-client-ver": "8.1.0.0"
}.
2025-09-18 11:52:59.751 +08:00 [INF] The logout request was successfully validated.
2025-09-18 11:52:59.751 +08:00 [WRN] No SessionId was found in the token during HandleLogoutRequestContext.
2025-09-18 11:52:59.754 +08:00 [INF] Executing endpoint 'Volo.Abp.OpenIddict.Controllers.LogoutController.GetAsync (Volo.Abp.OpenIddict.AspNetCore)'
2025-09-18 11:52:59.754 +08:00 [INF] Route matched with {action = "Get", controller = "Logout", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task1[Microsoft.AspNetCore.Mvc.IActionResult] GetAsync() on controller Volo.Abp.OpenIddict.Controllers.LogoutController (Volo.Abp.OpenIddict.AspNetCore). 2025-09-18 11:52:59.756 +08:00 [ERR] SessionId is null. It's not possible to revoke the session during sign out. 2025-09-18 11:52:59.756 +08:00 [INF] AuthenticationScheme: Identity.Application signed out. 2025-09-18 11:52:59.757 +08:00 [INF] AuthenticationScheme: Identity.External signed out. 2025-09-18 11:52:59.757 +08:00 [INF] AuthenticationScheme: Identity.TwoFactorUserId signed out. 2025-09-18 11:52:59.757 +08:00 [INF] Executing SignOutResult with authentication schemes (["OpenIddict.Server.AspNetCore"]). 2025-09-18 11:52:59.757 +08:00 [INF] The logout response was successfully returned to 'http://master.aysdlrmyy.com:28444/signout-callback-oidc': { "state": "CfDJ8D2ygYFMKaZGvAEpZ3bmx8nlI0RZ1T2yW3STyka3CVCJdWCeCIQ5xjsJN2E27Dbw0Ij7SykGqpfp1HnIY2SxynCmU8n5LBClCDG86__9HwEUjnVPTboCwx4an3s14n0xEcF6GLCZGb3XMNh_PNfWzb4" }. 2025-09-18 11:52:59.757 +08:00 [INF] Executed action Volo.Abp.OpenIddict.Controllers.LogoutController.GetAsync (Volo.Abp.OpenIddict.AspNetCore) in 3.2291ms 2025-09-18 11:52:59.757 +08:00 [INF] Executed endpoint 'Volo.Abp.OpenIddict.Controllers.LogoutController.GetAsync (Volo.Abp.OpenIddict.AspNetCore)' 2025-09-18 11:52:59.758 +08:00 [INF] Request finished HTTP/2 GET https://master.aysdlrmyy.com:28443/connect/logout?post_logout_redirect_uri=http%3A%2F%2Fmaster.aysdlrmyy.com%3A28444%2Fsignout-callback-oidc&state=CfDJ8D2ygYFMKaZGvAEpZ3bmx8nlI0RZ1T2yW3STyka3CVCJdWCeCIQ5xjsJN2E27Dbw0Ij7SykGqpfp1HnIY2SxynCmU8n5LBClCDG86__9HwEUjnVPTboCwx4an3s14n0xEcF6GLCZGb3XMNh_PNfWzb4&x-client-SKU=ID_NET9_0&x-client-ver=8.1.0.0 - 302 null null 11.5585ms 2025-09-18 11:53:02.544 +08:00 [INF] AuthenticationScheme: Identity.Application signed in. 2025-09-18 11:53:02.573 +08:00 [INF] Executing RedirectResult, redirecting to http://master.aysdlrmyy.com:28444. 2025-09-18 11:53:02.574 +08:00 [INF] Executed action Master9.Custom.PasswordlessController.Login (Master9.AuthServer) in 5220.9766ms 2025-09-18 11:53:02.574 +08:00 [INF] Executed endpoint 'Master9.Custom.PasswordlessController.Login (Master9.AuthServer)' 2025-09-18 11:53:02.596 +08:00 [INF] Request finished HTTP/2 GET https://master.aysdlrmyy.com:28443/Passwordless/Login?userId=admin&token=123 - 302 null null 5256.7679ms 2025-09-18 11:53:07.343 +08:00 [INF] Request starting HTTP/2 GET https://master.aysdlrmyy.com:28443/connect/logout?post_logout_redirect_uri=http%3A%2F%2Fmaster.aysdlrmyy.com%3A28444%2Fsignout-callback-oidc&state=CfDJ8D2ygYFMKaZGvAEpZ3bmx8mXYQRNhVaWzNEccmcV4GBfYq81JmwQk3CM6-nVYKCEh07MTUw98Ky7mnbURVkgRnRxwRxnghylFqkxCQjtlZ0DOTi0t1rRkmzWF6FY2Sb240_s17o-oLDxPqMApS_jNAw&x-client-SKU=ID_NET9_0&x-client-ver=8.1.0.0 - null null 2025-09-18 11:53:07.344 +08:00 [INF] The request URI matched a server endpoint: "Logout". 2025-09-18 11:53:07.344 +08:00 [INF] The logout request was successfully extracted: { "post_logout_redirect_uri": "http://master.aysdlrmyy.com:28444/signout-callback-oidc", "state": "CfDJ8D2ygYFMKaZGvAEpZ3bmx8mXYQRNhVaWzNEccmcV4GBfYq81JmwQk3CM6-nVYKCEh07MTUw98Ky7mnbURVkgRnRxwRxnghylFqkxCQjtlZ0DOTi0t1rRkmzWF6FY2Sb240_s17o-oLDxPqMApS_jNAw", "x-client-SKU": "ID_NET9_0", "x-client-ver": "8.1.0.0" }.