C#實現像微信PC版一樣的掃碼登錄功能


現在好些網站都支持掃碼登錄,感覺上安全了很多,但是本地程序掃碼登錄的不多,就用C#實現了一下,需要作如下准備

  1. 在官網上申請一個企業微信,有條件的話做個企業認證吧,我們的是認證過的,所以賬號和本地其他系統的賬號是統一的.
  2. 在應用中創建一個應用,這個是關鍵,我們掃碼就是和它有關.
  3. 點擊打開自建的應用,里面有個企業微信授權登錄
  4. 設置好可信的授權回調域名,這個域名需要是通過ICP備案的,生成的二維碼掃描后是需要跳轉到這個域名上的.
  5. 閱讀API文檔構造掃碼登錄鏈接,用戶身份獲取等
    上面這些看起來很多,但是如果做過企業微信號程序開發,那么就是設置個域名的事情.

下面轉到C#這里,登錄界面上放一個webbrowser控件,用於顯示掃碼登錄鏈接,再放一個圖片控件用於顯示二維碼,等用戶掃了二維碼后就跳轉到自己設置的可信授權域名處作身份驗證,驗證通過后就自動登錄.

private void Form_load_Load(object sender, EventArgs e)
{

  web1.Navigate("https://open.work.weixin.qq.com/wwopen/sso/qrConnect?appid=wxc&agentid=1000002&redirect_uri=http://wx.qq.com.cn/test/load.aspx&state=STATE");

}

private void web1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{

        if (count == 1) 
        {
            foreach (HtmlElement he in web1.Document.GetElementsByTagName("img"))
            {
                string str = he.GetAttribute("className");
                if (str == "qrcode lightBorder")
                {
                    pic_code.ImageLocation =he.GetAttribute("src"); //獲取微信生成的二維碼圖片,那個網頁中只有兩個圖片,且二維碼是第二張圖片.
                }
            }
        }

       //掃碼通過企業微信驗證后才會執行下面的代碼.通過檢測網址中是否包含用戶身份的code來判斷是否通過了微信驗證
        string url = web1.Url.ToString();
        string temp = "code";
        bool Flag = url.Contains(temp);
        if (Flag == true)
        {
            cbox_yhm.Text = url;
            cbox_yhm.Text=web1.Document.GetElementById("L_name").OuterText.ToString();
            txt_pwd.Text = "123456";
            web1.Visible = false;
            button1.PerformClick();
        }
        count += 1;
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM