Select Page

WEB3-開發WalletConnet

官方文件

https://github.com/WalletConnect

https://github.cocm/WalletConnect/walletconnect-docs

React 與 WallectConnect

https://github.com/WalletConnect/web-examples/tree/main/dapps/react-dapp-v2

https://react-app.walletconnect.com/

C# 與 WalletConnect

https://github.com/WalletConnect/WalletConnectSharp/tree/main/WalletConnectSharp.Desktop

參考資料

如何使用WalletConnect,https://academy.binance.com/zt/articles/how-to-use-walletconnect

WalletConnect 简单示例

DEMO

https://github.com/PureStake/moonbeam-walletconnect-demo

https://moonbeam-walletconnect-demo.netlify.app/

https://example.walletconnect.org/

ASP.NET 具有潛在危險 Request.Form 的值已從用戶端偵測到

ASP.NET 具有潛在危險 Request.Form 的值已從用戶端偵測到

當在撰寫 ASP.NET 4.0 以上 WebForm 的程式碼時候,如果要用 Request 的方法帶 XML 或是 JSON DATA,會遇到跳出「具有潛在危險 Request.Form 的值已從用戶端偵測到」的錯誤,解決方法可以在該頁面上面標註ValidateRequest=”false”

當你遇到錯誤訊息如下時候

可以到 xxx.aspx 中的 page 定義中,去修改設定成

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="home.aspx.cs" Inherits="xxx" ValidateRequest="false" %>

參考資料如下

https://learn.microsoft.com/zh-tw/aspnet/whitepapers/request-validation

C# HttpClient 與 PHP 開發的 Web API 連接

常常要接WEB API的人都需要在許多種語言中穿梭,其中最麻煩的就是加密的函式(Function)了,不同語言即使加密演算法都一樣,但在呈現的時候常常都是不一樣的,也會有些微的小地方要修正,但就是這些地方在捆擾著大家,浪費時間在處理顯示問題,所以今天的主題放在C#的MD5()要如何接上PHP的MD5()

一言不合就先上C#的程式碼,這一段程式碼式可以複製貼上後就可以呼叫的,你只要呼叫他就回你PHP格式的MD5字串,通常就在把她回填到WEB API的加密區域就可以用了

using System.Security.Cryptography;

	public string PHPMD5(string text)
	     {
            var md5 = new MD5CryptoServiceProvider();
            byte[] bytesText = Encoding.UTF8.GetBytes(text.ToLower());
            byte[] bytesMD5Text = md5.ComputeHash(bytesText);
            StringBuilder sb = new StringBuilder();
            foreach (var b in bytesMD5Text)
            {
                sb.Append(b.ToString("x2").ToLower());
            }
            return sb.ToString();
        }

處理完MD5顯示不相容的問題後,我們來處理 http request header 的問題,現在 C# 中比較建議用 httpclient 來替代以前的WebClient,替代後最常見的問題就是要把寫法改成非同步想法 Async,以及 HttpClient 功能相對 WebClient 要來的低接一些,不太熟悉底層的程序員會找不到方法使用,我先來介紹一下,如果你要在 HttpClient 中加入 http request header 的方法,程式碼如下

		using (HttpClient client = new HttpClient())
            {
                try
                {
                    client.DefaultRequestHeaders.Add("account", account);                   
                    client.DefaultRequestHeaders.Add("sign", sign);
                    client.DefaultRequestHeaders.Add("timestamp", timestamp);
                    client.Timeout = TimeSpan.FromSeconds(30);
                    HttpResponseMessage response = await client.GetAsync(url);
                    string responseBody = await response.Content.ReadAsStringAsync();
                    Console.WriteLine(responseBody);
                }
                catch (HttpRequestException ex)
                {
                    Console.WriteLine("Message :{0} ", ex.Message);
                }
            }

這種寫法比較能夠勾起老人的回憶,比較像是webclient的邏輯,也比較直覺些