-32
@@ -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"]
|
|
||||||
@@ -44,7 +44,12 @@ namespace YhCore.WebApi.Auth
|
|||||||
var auth = configuration.GetSection(YhAuthOptions.SectionName).Get<YhAuthOptions>() ?? new YhAuthOptions();
|
var auth = configuration.GetSection(YhAuthOptions.SectionName).Get<YhAuthOptions>() ?? new YhAuthOptions();
|
||||||
options.Cookie.Name = auth.CookieName;
|
options.Cookie.Name = auth.CookieName;
|
||||||
options.Cookie.HttpOnly = true;
|
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;
|
// 会话票据:TicketDataFormat 把票据存服务端,Cookie 只写 32 位 key;
|
||||||
// IsPersistent=false(CasAuthenticationHandler)会话 Cookie,关闭浏览器即失效;
|
// IsPersistent=false(CasAuthenticationHandler)会话 Cookie,关闭浏览器即失效;
|
||||||
// SlidingExpiration=false 固定过期,不滑动续期。
|
// SlidingExpiration=false 固定过期,不滑动续期。
|
||||||
|
|||||||
Reference in New Issue
Block a user