[fix] 修正Upgrade无法处理令牌已过期来重新登录的问题
智能大石头 authored at 2025-08-26 08:02:15
1.17 KiB
Stardust
using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using NewLife.Log;

// 通过程序集特性,将此类标记为宿主启动项
[assembly: HostingStartup(typeof(Stardust.Extensions.HostingStartup))]

namespace Stardust.Extensions;

/// <summary>Web主机启动</summary>
public class HostingStartup : IHostingStartup
{
    /// <summary>配置服务</summary>
    /// <param name="builder"></param>
    public void Configure(IWebHostBuilder builder)
    {
        builder.ConfigureServices(services =>
        {
            services.AddStardust();

            services.AddTransient<IStartupFilter, StartupFilter>();
        });

        //builder.Configure(app =>
        //{
        //    XTrace.WriteLine("HostingStartup injected Stardust");
        //    app.UseStardust();
        //});
    }
}

internal class StartupFilter : IStartupFilter
{
    public Action<IApplicationBuilder> Configure(Action<IApplicationBuilder> next)
    {
        return app =>
        {
            XTrace.WriteLine("StartupFilter injected Stardust");
            app.UseStardust();

            next(app);
        };
    }
}