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;
    }

原文地址:https://www.cnblogs.com/wjbych/p/10410313.html

时间: 2024-11-03 21:02:57

C#实现像微信PC版一样的扫码登录功能的相关文章

微信扫码登录实现原理

扫码登录是如何实现的? 网页版微信刚推出时,无数人被它的登录方式惊艳了一下,不需要输入用户名密码,打开手机微信扫一扫,便自动登录.从原理上讲,二维码只能是一段文本的编码,如何用它实现快捷登录的呢? 打开网页版微信,可以看到如下的页面: 微信扫码界面 如果你用我查查.支付宝.新浪微博等软件扫码二维码,你会发现此二维码解析出来是如下的网址: https://login.weixin.qq.com/l/obsbQ-Dzag== 接下来详细介绍一下扫码登录具体的每个步骤: 第一步:用户 A 访问微信网页

Swoole 的微信扫码登录

微信应用的便捷,扫码登录方式越来越被现在的应用所使用.它因为不用去记住密码,只要有微信号即可方便快捷登录.微信的开放平台原生就有支持扫码登录的功能,不过大部分人还是在用公众平台,所以扫码登录只能自行实现.这里基于微信公众平台的带参数临时二维码,并且结合 Swoole 的 WebSocket 服务实现扫码登录.大体流程如下: 客户端打开登录界面,连接到 WebSocket 服务 WebScoket 服务生成带参数二维码返回给客户端 用户扫描展示的带参数二维码 微信服务器回调扫码事件并通知开发者服务

初涉扫码登录:edusoho实现客户端扫码登录(简版)

一.项目简介及需求 edusoho是一套商业版的在线教育平台,项目本身基于symfony2框架开发,现在有一款自己的APP,要求在不多修改edusoho自身代码的基础上,实现客户端对PC端扫码登录.不多修改edusoho代码的原因是为了避免下次升级主版本时发生错误. 二.版本信息及所需应用 edusoho 7.5.14 php 5.5.25 php  GD库 memcache(本次使用memcache作为存储介质,可用redis代替) 点我下载 phpqrcde(php生成二维码插件) 三.实现

php微信开放平台--第三方网页微信扫码登录(OAuth2.0)

第一.OAuth2.0 OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. 允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据.每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频).这样,OAuth允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要分享他们的

微信开放平台开发——网页微信扫码登录(OAuth2.0)

.OAuth2.0 OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. 允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据.每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频).这样,OAuth允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要分享他们的访问

Web应用多账号系统设计及微信扫码登录实现

Web应用多账号系统设计及微信扫码登录实现 1   前言概述 公司对功能测试,性能测试,安全测试等等都做了比较好的自动化后,急需要一个MIS系统来统一管理这些结果及报表. 此MIS系统特点如下: 仅内部人员使用 部署在公网 基于如上特点,显然让公司的人为这样一个内部系统而实现一个完整的账号不太现实,要兼顾隐私性和便捷性的需求,作者想到了使用微信扫码登录来做为身份认证,然后后台管理员审核,这样就可以达到如下的效果: 可以实现无门槛注册(微信扫一扫就完成注册),保证了便捷性 系统对未审核通过的人员进

(转)微信扫码登录网页实现原理

扫码登录操作过程 浏览器输入:https://wx.qq.com/?lang=zh_CN 手机登录微信,利用“扫一扫”功能扫描网页上的二维码 手机扫描成功后,提示“登录网页版微信”:网页上显示“成功扫描 请在手机点击确认以登录” 手机端点击“登录网页版微信”,网页跳转到用户的微信操作界面 整个扫码登录的操作过程还是挺简单的,而且交互地实时性比较好,如果网络不是非常阻塞,整个过程还是非常快的. 扫码登录原理 扫码登录大概的思路是:微信手机客户端从网页二维码里面得到一些信息,然后发送给网页微信的服务

微信扫码登录

一.微信官方参考文档地址: https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN 首先你需要在微信开放平台申请一个微信网站应用,获取 AppID:aaaaaaaaabbcc AppSecret: sfasfsafsafsafsads 二.jsp页面代码 <%@

微信小程序使用场景延伸:扫码登录、扫码支付

微信小程序使用场景延伸:扫码登录.扫码支付 小程序最适合的使用场景有哪些?相比大家能列举出来很多,但这个场景,大家可能多数没想到_^ 笔者团队近期接到了一个PC项目:转转游戏租号PC官网,该项目要求在PC端实现整个交易流程,问题来了,我司(转转)一直深耕于移动端,在PC端几乎啥都没有,甚至都没有个像样的登录流程.购买流程...当大家在探讨如何接入微信授权登录.微信扫码支付等一大套流程之际,笔者力排众议,机智的提出:为什么不用小程序来实现这些功能! 备注:『转转官方』是我司开发的一款小程序,实现了