linux上docker中带有windows身份验证的.NET CORE 3.0是否有效?
我试图在dockerlinux容器中使用Visual Studio 2019中的.NET CORE 3.0应用程序解决方案启用windows身份验证,该解决方案使用mcr.microsoft.com/dotnet/CORE/aspnet:3.0映像。我可以在IIS windows容器中使用gMSA帐户进行此设置,但在linux容器和aspnet:3.0中,如果我使用[Authorize]属性且未填充User.Identity.Name,则无法获得凭据提示。如果这是可能的,我从互联网上得到的信号是混合的,到目前为止还无法找到一个简洁的答案。只是在注册服务JWT/IISDefaults/HttpSysDefaults/Oauth、app.UseAuthentication、修改启动设置和app settings.json时尝试了不同的事情,运气不好。如果有任何帮助,我们将不胜感激。我在一个项目中遇到了这个问题,我在ASP.NET中成功地得到了如下提示: 在需要授权访问的控制器上方,按如下方式放置authorize属性:linux上docker中带有windows身份验证的.NET CORE 3.0是否有效?,linux,docker,.net-core,containers,Linux,Docker,.net Core,Containers,我试图在dockerlinux容器中使用Visual Studio 2019中的.NET CORE 3.0应用程序解决方案启用windows身份验证,该解决方案使用mcr.microsoft.com/dotnet/CORE/aspnet:3.0映像。我可以在IIS windows容器中使用gMSA帐户进行此设置,但在linux容器和aspnet:3.0中,如果我使用[Authorize]属性且未填充User.Identity.Name,则无法获得凭据提示。如果这是可能的,我从互联网上得到的信号是
[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上获得了这样的凭据提示,但是凭据仍然不起作用,因此我希望这能有所帮助。
Windows身份验证在linux容器中是不可能的。谢谢,也许这是目前唯一的选择: