我对.Net核心应用程序进行了Docker化,并且我的应用程序使用IIS-express进行基本身份验证。 问题是,每当我在容器中运行我的应用程序时,我都无法获取数据,因为基本身份验证在容器内无法正常工作,因为Docker映像没有IIS-express。
当前,我正在使用这张图片:
microsoft / dotnet:2.1.301-sdk
是否有同时包含.dotnet核心和IIS-express的Docker映像? 还有其他想法!
答案 0 :(得分:0)
您可以尝试使用microsoft/iis码头工人镜像并添加dotnet核心环境,但看起来它需要Windows容器。如果您不习惯构建自定义图像,则可能必须找到一个自定义存储库,或者用另一种解决方案替换IIS-express。
答案 1 :(得分:0)
它可能比您不依赖iis而是用代码进行基本身份验证更简单快捷。编写Authorize属性非常简单明了。
下面是一个示例:https://www.johanbostrom.se/blog/adding-basic-auth-to-your-mvc-application-in-dotnet-core。实际上,他在一页上解决了两次,一次是使用属性,一次是使用中间件。
答案 2 :(得分:0)
如果只需要在Windows上运行,则使用configure Kestrel to use Windows auth
中的此代码段import pandas as pd
pd.read_gbq(query='''select 1''', project_id=7777777, dialect='legacy')
invalid_grant: Bad Request', '{\n "error" : "invalid_grant",\n "error_description" : "Bad Request
(文章所在的地方
client_secrets.json
我已替换为public class Program
{
public static void Main(string[] args) =>
BuildWebHost(args).Run();
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseHttpSys(options =>
{
options.Authentication.Schemes = AuthenticationSchemes.Basic;
options.Authentication.AllowAnonymous = false;
})
.Build();
}
)