How To Keep SECRET Strings REALLY SECRET in ASP.NET Core?

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 ส.ค. 2024

ความคิดเห็น • 37

  • @3rd_Century
    @3rd_Century ปีที่แล้ว +5

    Thank you Dan. On a side note. If you right mouse click on the project file, from the menu you can select "Manage User Secrets". Another way besides the command line. This is in VS 2022.

    • @Codewrinkles
      @Codewrinkles  ปีที่แล้ว +1

      Thanks for the tip. I'll look if it's also available in Rider. I haven't noticed it.

  • @danielegiovanetti9258
    @danielegiovanetti9258 ปีที่แล้ว +2

    This is the information I need. Special thanks Dan. As always super clear explanation.

  • @MarllonVilano
    @MarllonVilano ปีที่แล้ว +1

    Thanks for providing exactly the knowledge I needed. I'm gonna combine this with Gitlab environment variables when deploying the application.

  • @xelaksal6690
    @xelaksal6690 ปีที่แล้ว

    Thanks for clear explanation and good examples!

  • @muradhossen2347
    @muradhossen2347 ปีที่แล้ว

    Thank you for teaching me something new.

  • @Pedro-il8kx
    @Pedro-il8kx ปีที่แล้ว

    Excellent, as always

  • @zephycz3537
    @zephycz3537 ปีที่แล้ว

    Very useful video, thanks 😉👍 .
    I got error "Could not find the global property 'UserSecretsId' in MSBuild project ...",
    but helped me call "dotnet user-secrets init" before calling " dotnet user-secrets set ...", then all was ok 🙂 .

  • @erinh0201
    @erinh0201 9 หลายเดือนก่อน +1

    Hi! Did you ever create a video that shows how to store keys in environment variables for production on an on-prem windows server? I know how to create the variables in Windows and deploy the app to IIS, but I would like to see a quick example in the .net core code of how to get it to reference those local environment variables. For instance, is there something we need to add to the program or something so that it knows to look in the local environmental variables? Thanks!

    • @renatoloefstop
      @renatoloefstop 7 หลายเดือนก่อน

      me too!

    • @emllik2155
      @emllik2155 4 หลายเดือนก่อน

      For anyone still wondering about this, here's one way you can do it:
      Environment.SetEnvironmentVariable("DefaultConnection", "connection string value");
      string connString = Environment.GetEnvironmentVariable("DefaultConnection");
      This way the environment variable exists only for the duration of the running application process. You can just put this inside Program.cs if you like.

  • @MihaiMoisei
    @MihaiMoisei ปีที่แล้ว

    Like always very good content, Thanks.

  • @booby163
    @booby163 ปีที่แล้ว +1

    I got this problem when hitting the controller
    "System.InvalidOperationException: The ConnectionString property has not been initialized."

    • @booby163
      @booby163 ปีที่แล้ว

      i just fixed, i was using docker lol i didnt realize docker doesn't have secrets.json its just a local file, god XD

  • @doogiehowser1124
    @doogiehowser1124 2 หลายเดือนก่อน

    thanks for the video but i think there is a better way to encrypt/hide connection strings. Why use some other package like codewrinkles?

  • @coding-gemini
    @coding-gemini ปีที่แล้ว

    wow good to know something new, So if the app in on prem and there's no CI/CD how do we switch between the user secrets based on environment ?

    • @dfcw
      @dfcw 9 หลายเดือนก่อน

      You know how he uses "dev" to get the connection string. That "dev" could be a value stored in your appsettings.json per enviroment. i.e, different secrets for different enviroments.

  • @ayhamala3ma189
    @ayhamala3ma189 ปีที่แล้ว

    thanks so much

  • @RoyZASTEROiD
    @RoyZASTEROiD ปีที่แล้ว

    big thanks

  • @49riddickful
    @49riddickful ปีที่แล้ว

    Normally one can use the AzureKeyVault to store the connection strings etc. when deploying your application. Is that correct?

    • @Codewrinkles
      @Codewrinkles  ปีที่แล้ว +2

      Yes, Azure Key Vault would be a go-to. There are other products/services that one could use, like Hashicorp.

  • @dharwal87
    @dharwal87 ปีที่แล้ว +1

    Environment variables and user secrets are not best practice for production. You should go for azure key vault.

    • @societysvillain
      @societysvillain ปีที่แล้ว

      Assuming the shop is running on Azure and not on-prem or something sure.

    • @dharwal87
      @dharwal87 ปีที่แล้ว

      @@societysvillain you can use key vault even if your app is not in azure. If you don't want to use azure key vault its better to use encrypted secrets in your config.

    • @Barto2You
      @Barto2You ปีที่แล้ว

      @@dharwal87 The encrypted secret should also be decrypted in your application. so if you don't want to use an env variable for storing your key for the decryption where do your store that key?

    • @dharwal87
      @dharwal87 ปีที่แล้ว +1

      @@Barto2You It is always recommended to use certificate-based encryption and decryption. During deployment, the certificate's public key is used to encrypt the configuration values, and then the application loads the certificate and uses its private key to decrypt them. The certificate should be installed on your web server and password-protected.

    • @Barto2You
      @Barto2You ปีที่แล้ว

      ​@@dharwal87 thx, do you know perhaps a good example on the internet of how to achieve this?