要在带有 Windows 认证的 Docker 容器中运行Blazor Server应用程序,您可以按照以下步骤操作:
创建Blazor Server应用程序项目。
dotnet new blazorserver -n MyBlazorApp
cd MyBlazorApp
添加Windows认证支持的NuGet包。在项目文件(.csproj)中添加以下包引用:
在Startup.cs
文件中配置Windows认证。
using Microsoft.AspNetCore.Authentication.Negotiate;
// ...
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(NegotiateDefaults.AuthenticationScheme)
.AddNegotiate();
// ...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...
app.UseAuthentication();
// ...
}
创建Dockerfile用于构建Docker镜像。
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /app
# copy csproj and restore as distinct layers
COPY *.csproj .
RUN dotnet restore
# copy everything else and build app
COPY . .
RUN dotnet publish -c Release -o out
# build runtime image
FROM mcr.microsoft.com/dotnet/aspnet:5.0
WORKDIR /app
COPY --from=build /app/out .
# configure Windows authentication
ENV ASPNETCORE_AUTHENTICATION="Windows"
# expose port
EXPOSE 80
# start the app
ENTRYPOINT ["dotnet", "MyBlazorApp.dll"]
构建和运行Docker容器。
docker build -t myblazorapp .
docker run -p 8080:80 myblazorapp
现在,您的Blazor Server应用程序将在带有Windows认证的Docker容器中运行。您可以通过访问http://localhost:8080
来访问它。