错误必须提供“ClientId”选项。构建泊坞窗图像时

时间:2017-01-08 15:07:38

标签: docker .net-core

我已经启动了一个新的.net核心项目,我将其配置为使用Google+ Api进行身份验证。我的客户端ID和密码使用dotnet用户密钥存储。当我构建我的泊坞窗图像时,我得到了

 Unhandled Exception: System.ArgumentException: The 'ClientId' option must be provided.

我知道这是因为我的秘密没有提供给图像。我想知道的是如何在不将它们提交到存储库的情况下提供我的Id和Secret密钥,并仍在本地运行我的图像。

我在想,当我将它部署到服务器时,我可以将它们作为Env变量的一部分,我想我也可以在本地进行,只是想知道是否有其他人有这个可能比我更优雅的解决方案

我找不到其他人如何做到这一点的很多信息。

2 个答案:

答案 0 :(得分:3)

首先,秘密不是您应该用于部署的。通过帮助防止敏感数据存储在代码中/检查到源代码管理中,可以在开发过程中保护安全存储的秘密。请参阅相关问题How do UserSecrets work in the Cloud?

你是对的,你应该使用环境变量代替,或者作为替代,使用像DB那样的外部设置存储。

答案 1 :(得分:3)

要添加Google+身份验证,您可以看到此guide

在startup.cs中添加此代码段

Sub WMS()
Dim myValn As String
Dim ws As Worksheet
Dim ws2 As Worksheet
Dim myDate3 As String
Dim Wmsn As String
Dim Wmsn2 As String

    Set ws = ThisWorkbook.Worksheets("UPLOADER")
    Set ws2 = ThisWorkbook.Worksheets("VARIABLES")

myName = ws2.Range("B2").Value
myValn = ws2.Range("B1").Value
myDate3 = Format(Date, "mm-dd-yyyy")
Wmsn = "WMS_36196_PROD_" & myDate3 & ".csv"
Wmsn2 = "36196_WMS_" & myDate3 & ".csv"

'source path below
FileCopy "\\Rdcicgtcuwd01p\app_log\36196_WMS\" & Wmsn, "\\olscmesf003\gcm_emea\TCU_REPORTS\APPS\Reports\Regional\Workflow Management System\2017\" & myValn & "\" & Wmsn2

End Sub

在appsettings.json中添加此行

services.AddAuthentication().AddGoogle(googleOptions =>
{
    googleOptions.ClientId = Configuration["Authentication:Google:ClientId"];
    googleOptions.ClientSecret = Configuration["Authentication:Google:ClientSecret"];
});