第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 T-SQL 插入 Identity Server 4 持久的 ApiSecret 值

如何使用 T-SQL 插入 Identity Server 4 持久的 ApiSecret 值

C#
犯罪嫌疑人X 2022-07-23 18:00:19
我已經(jīng)通過 Identity Server 4 QuickStart 使用實體框架來持久存儲配置和操作數(shù)據(jù)。在快速入門中,ApiResources 以代碼的形式加載到數(shù)據(jù)庫中。Api 秘密設(shè)置為        new ApiResource("api1", "My API")         {             ApiSecrets = { new Secret("secret".Sha256())}         }在 ApiResource 構(gòu)造函數(shù)中。當(dāng)在 Startup.InitializeDatabase 中將該 ApiResource 添加到 ConfigurationDbContext.ApiResources DbSet 時,        foreach(var resource in Config.GetApiResources())         {             context.ApiResources.Add(resource.ToEntity());         }         context.SaveChanges();子 ApiSecrets 表中的記錄在 ApiSecrets.Value 字段中包含可讀的文本值。    K7gNU3sdo+OL0wNhqoVWhr3g6s1xYv72ol/pe/Unols=我想通過 SQL 腳本管理我的配置數(shù)據(jù),但我不知道如何正確設(shè)置 ApiSecrets.Value。我試過使用 T-SQL HASHBYTES('SHA2_256', 'secret'),但這會在 ApiSecrets.Value 中產(chǎn)生一個不可讀的(我認(rèn)為是二進(jìn)制的)值。有沒有辦法通過 T-SQL 正確設(shè)置散列秘密?
查看完整描述

3 回答

?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗 獲得超5個贊

你在正確的軌道上使用HASHBYTES,只需要得到Base64散列BinaryHash:


DECLARE @HASHBYTES VARBINARY(128) = hashbytes('sha2_256', 'secret')

SELECT cast(N'' as xml).value('xs:base64Binary(sql:variable("@HASHBYTES"))', 'varchar(128)');


查看完整回答
反對 回復(fù) 2022-07-23
?
一只萌萌小番薯

TA貢獻(xiàn)1795條經(jīng)驗 獲得超7個贊

希望這會有所幫助。


CREATE FUNCTION [dbo].[ConvertToSha256ForIdentityServer](@secret varchar(128))

RETURNS varchar(128) AS

BEGIN

    DECLARE @HASHBYTES VARBINARY(128) = hashbytes('sha2_256', @secret)

    RETURN (SELECT top 1 cast(N'' as xml).value('xs:base64Binary(sql:variable("@HASHBYTES"))', 'varchar(128)'));

END

插入


MERGE INTO dbo.[ClientSecrets] AS TARGET

USING (

        VALUES

         (dbo.ConvertToSha256ForIdentityServer('mysecret'),'SharedSecret',getdate(),1)

      )

      AS Source ([Value],[Type],[Created],[ClientId])

ON Target.[ClientId] = source.[ClientId]

WHEN matched THEN

  UPDATE SET

      [Value] = Source.[Value],

      [Type] = Source.[Type]


WHEN NOT matched BY target THEN

  INSERT ([Value],[Type],[Created],[ClientId])

  VALUES ([Value],[Type],[Created],[ClientId]);


查看完整回答
反對 回復(fù) 2022-07-23
?
侃侃爾雅

TA貢獻(xiàn)1801條經(jīng)驗 獲得超16個贊

您可以使用下面的算法來創(chuàng)建秘密,然后您可以將其存儲在 SQL 中:


using System.Security.Cryptography;


static class Extentions

{


    public static string Sha256(this string input)

    {

        using (SHA256 shA256 = SHA256.Create())

        {

            byte[] bytes = Encoding.UTF8.GetBytes(input);

            return Convert.ToBase64String(((HashAlgorithm)shA256).ComputeHash(bytes));

        }

    }

}



void Main()

{

    Console.WriteLine( "secret-as-guid".Sha256());

}

你也可以使用passwordgenerator.net


查看完整回答
反對 回復(fù) 2022-07-23
  • 3 回答
  • 0 關(guān)注
  • 169 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號