gpt4 book ai didi

linux - .NET CORE 3.0 在 Linux 上的 docker 中使用 Windows 身份验证是否有效?

转载 作者:太空宇宙 更新时间:2023-11-04 09:58:04 25 4
gpt4 key购买 nike

我正在尝试使用 mcr.microsoft.com/dotnet/core/在 docker linux 容器 中的 Visual Studio 2019 中使用 .NET CORE 3.0 应用程序解决方案启用windows 身份验证 aspnet:3.0 图片。我可以使用 gMSA 帐户在 IIS Windows 容器中进行此设置而不会出现问题,但是当涉及到 linux 容器和 aspnet:3.0 时,如果我使用 [Authorize] 属性并且 User.Identity.Name 不是,我将无法获得凭据提示填充。如果可能的话,我会从互联网上收到混合信号,但到目前为止还无法找到简明的答案。只是通过注册服务 JWT/IISDefaults/HttpSysDefaults/Oauth、app.UseAuthentication、修改启动设置和应用程序 settings.json 尝试不同的事情,但没有成功。任何帮助将不胜感激。

最佳答案

我在一个项目中遇到了这个问题,我设法在 ASP.NET 中获得了凭证提示,如下所示:在您需要授权访问的 Controller 上方,像这样放置 Authorize 属性:

[Authorize(Policy = "SomeExampleGroup")]
[Route("/some-example")]
public class SomeExampleController : Controller {...}

在 Startup.cs 的 ConfigureServices 方法中:

services.AddAuthentication(NegotiateDefaults.AuthenticationScheme).AddNegotiate();
services.AddAuthentication(o => o.DefaultAuthenticateScheme = NegotiateDefaults.AuthenticationScheme);

services.AddAuthorization(options =>
{
options.AddPolicy("SomeExampleGroup",
policy => policy.RequireAssertion(/*some assertion here for example*/));
});

并且在 Configure 方法中确保放置

app.UseRouting();
app.UseAuthorization();
app.UseAuthentication();

按照这个顺序。无论如何,我设法在这样的 Linux 容器中的 Docker 上获得了凭据提示,但凭据仍然无法使用,所以我希望这会有所帮助。

关于linux - .NET CORE 3.0 在 Linux 上的 docker 中使用 Windows 身份验证是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58528876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com