diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 3aecd86..0000000 --- a/Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -# ============ 多阶段构建:.NET 5.0 ============ -# 构建阶段 -FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build -WORKDIR /src - -# 复制解决方案与全部项目文件(利用层缓存) -COPY YHDocPrintCore.sln* ./ -COPY src/*/*.csproj ./ -RUN for f in src/*/*.csproj; do \ - mkdir -p "$(dirname "$f")" && mv "$f" "$(dirname "$f")/"; \ - done \ - && dotnet restore YHDocPrintCore.sln - -# 复制源码并发布 -COPY src/ src/ -RUN dotnet publish src/YHDocPrintCore.WebApi/YHDocPrintCore.WebApi.csproj \ - -c Release -o /app/publish --no-restore - -# 运行阶段 -FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS runtime -WORKDIR /app -COPY --from=build /app/publish . - -# 日志目录(接口访问日志唯一输出,挂载卷便于采集) -RUN mkdir -p /app/logs -VOLUME ["/app/logs"] - -EXPOSE 80 -ENV ASPNETCORE_URLS=http://+:80 - -# 生产配置通过环境变量注入(ConnectionStrings__SqlServer / Redis:ConnectionString 等) -ENTRYPOINT ["dotnet", "YHDocPrintCore.WebApi.dll"] diff --git a/src/YhCore.WebApi/Auth/Cas/YhCasAuthServiceCollectionExtensions.cs b/src/YhCore.WebApi/Auth/Cas/YhCasAuthServiceCollectionExtensions.cs index 47523a8..e5f5ca5 100644 --- a/src/YhCore.WebApi/Auth/Cas/YhCasAuthServiceCollectionExtensions.cs +++ b/src/YhCore.WebApi/Auth/Cas/YhCasAuthServiceCollectionExtensions.cs @@ -44,7 +44,12 @@ namespace YhCore.WebApi.Auth var auth = configuration.GetSection(YhAuthOptions.SectionName).Get() ?? new YhAuthOptions(); options.Cookie.Name = auth.CookieName; options.Cookie.HttpOnly = true; - options.Cookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.None; + // SameSite=Lax:登录/回调全部是顶层导航,Lax 足够。 + // 【勿改 None】HTTP 部署下无 Secure 属性的 SameSite=None Cookie 会被浏览器直接丢弃 + // (Chrome/Edge 强制 None 必须 Secure),导致登录 Cookie 永远种不上 → 无限重定向循环 + // (2026-09-07 线上复现:验票成功但下一请求无 Cookie → ERR_TOO_MANY_REDIRECTS)。 + // 跨 host 登录态需求由 DebugUser 头方案解决(见 docs/本地前端联调线上后端SSO方案.md)。 + options.Cookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.Lax; // 会话票据:TicketDataFormat 把票据存服务端,Cookie 只写 32 位 key; // IsPersistent=false(CasAuthenticationHandler)会话 Cookie,关闭浏览器即失效; // SlidingExpiration=false 固定过期,不滑动续期。