Net Core MVC or Razor Page 多台Server 串接 第三方登入 發生錯誤訊息
狀況:
當初在使用Google登入時候,
本機沒問題
Sit 沒問題
一旦上至Stg以及Prod則發生問題
唯一的差別就是機器多了一台,並且做好了Load Balance
在此時即發生
Microsoft.AspNetCore.Antiforgery.AniforgeryValidationException: The antiforgery token could not be decrypted. ---> System.Security.Cryptography.CryptographicException: The key{xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} was not found in the key ring.
此時我也不懂,也就詢問了技術群組,Will保哥告知了我,先把MachineKey先統一
但我也不懂什麼是Machine Key ,如何使用在 Net Core 上
於是在我不斷的尋找之下,找出了以下
解決內容:
這最後結果就是加入了db table以及加入 key
參考網址為:
我使用的是 EF 的方式
我是PostgreSQL
1. Nuget 加入 Microsoft.AspNetCore.DataProtection.EntityFrameworkCore
2. 針對我的DbContext 加入 PersistKeysToDbContext
3. 移至我的DbContext,繼承IDataProtectionKeyContext
並且加入
public DbSet<DataProtectionKey> DataProtectionKeys { get; set; }
4. 使用 Code First Migrations
完成後即可