簡體   English   中英

SQL CLR-Base-64 char數組或字符串的長度無效

[英]SQL CLR - Invalid length for a Base-64 char array or string

我創建了一個用戶定義的函數並執行了。 它返回以下錯誤消息。 需要您的支持。

public partial class UserDefinedFunctions
{

    [Microsoft.SqlServer.Server.SqlFunction]
    public static SqlBoolean SqlFunctValidateUserCred() 
    {
            bool verify = Crypto.VerifyHashedPassword("test", "test1");
            return verify;
    }
}

錯誤:

消息6522,級別16,狀態2,行11在執行用戶定義的例程或聚合“ SqlFunctValidateUserCred”時發生.NET Framework錯誤:System.FormatException:Base-64字符數組或字符串的長度無效。 System.FormatException:at System.Convert.FromBase64_Decode(Char * startInputPtr,Int32 inputLength,Byte * startDestPtr,Int32 destLength)at System.Convert.FromBase64CharPtr(Char * inputPtr,Int32 inputLength)
在System.Convert.FromBase64String(String)在System.Web.Helpers.Crypto.VerifyHashedPassword(String hashedPassword,字符串密碼)在UserDefinedFunctions.SqlFunctValidateUserCred()

System.Web.Helpers.Crypto.VerifyHashedPassword

參數
hashedPassword
類型:System.String
先前計算的RFC 2898哈希值, 以base-64編碼的string

讀。

您可以嘗試以下操作:

public static void AddUsersToDatabase(string databaseserver, string databasename, string usertobeadded)
{
    using (SqlConnection conn = 
        new SqlConnection("server=" + databaseserver + 
                        "; database=" + databasename + 
                        "; User ID=WPDOMAIN\\spdev; Integrated Security=SSPI;  password=Password123;"))
    {
        conn.Open();
        string password = "Password123";
        string sql = "CREATE LOGIN " + usertobeadded + " WITH PASSWORD = '" +
        password + "';  USE " + databasename + "; CREATE USER " + usertobeadded + " FOR LOGIN " + usertobeadded + ";";

        SqlCommand cmd = new SqlCommand(sql);
        cmd.ExecuteNonQuery();


        conn.Close();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM