首页 > 微信应用  > 

.NET C#使用微信公众号登录网站的实例解析

.NET C#使用微信公众号登录网站的实例解析
这篇文章主要介绍了.NET C#使用微信公众号登录网站,教大家利用微信公众号进行网站登录,感兴趣的小伙伴们可以参考一下

这篇文章主要介绍了.net c#使用微信公众号登录网站,教大家利用微信公众号进行网站登录,感兴趣的小伙伴们可以参考一下

适用于:本文适用于有一定微信开发基础的用户  

引言:花了300大洋申请了微信公众平台后,发现不能使用微信公众号登录网站(非微信打开)获得微信帐号。仔细研究后才发现还要再花300大洋申请微信开放平台才能接入网站的登录。于是做为屌丝程序员的我想到了自己做一个登录接口。

工具和环境:1. VS2013 .net4.0 C# MVC4.0 Razor2.插件A. Microsoft.AspNet.SignalR;时时获取后台数据B.Gma.QrCodeNet.Encoding;文本生成二维码 

实现的目标1. 在电脑上打开网站登录页,提示用户使用微信扫描登录确认。2.用户通过微信扫描确认后,电脑自动收到确认信息跳转到网站主页。 

原理分析 1.SignalR是一个神奇的工具,能从浏览器A发送信息到服务器,服务器自动推送消息到指定的浏览器B。那么我的计划是用电脑的浏览器打开登录页,生成一个二维码(内容为带有微信公众平台网页用户受权的网址),用微信的描码功能打开这个网站。将获取的微信用户OPENID通过SignalR发送到电脑浏览器,实现登录功能

 实现过程1.微信公从平台的注册和权限(略过...)2.VS2013中新建MVC网站,我用的环境为.NET4.0 C# MVC4.0  Razor引擎(个人习惯)。

3.安装 SignalR VS2013 点击工具 ==> 库程序包管理器 ==> 程序包管理控制台

 输入以下命令: Install-Package Microsoft.AspNet.SignalR -Version 1.1.4 

.net4.0 Mvc4环境下建议安装1.1.4高版本安装不上

 安装 SingnalR成功 

设置SignalR

var config = new Microsoft.AspNet.SignalR.HubConfiguration(); config.EnableCrossDomain = true; RouteTable.Routes.MapHubs(config); 

新建一个类 PushHub.cs 

using Microsoft.AspNet.SignalR;using Microsoft.AspNet.SignalR.Hubs;using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace WD.C.Utility{ /// <summary> /// 标注Single javascription要连接的名称 /// </summary> [HubName("pushHub")] public class PushHub : Hub { /// <summary> /// 临时保存请求的用户 /// </summary> static Dictionary<string, string> rlist = new Dictionary<string, string>(); /// <summary> /// 登录请求的用户;打开Login页执行本方法,用于记录浏览器连接的ID /// </summary> public void ruserConnected() { if (!rlist.ContainsKey(Context.ConnectionId)) rlist.Add(Context.ConnectionId, string.Empty); //Client方式表示对指定ID的浏览器发送GetUserId方法,浏览器通过javascrip方法GetUserId(string)得到后台发来的Context.ConnectionId Clients.Client(Context.ConnectionId).GetUserId(Context.ConnectionId); } /// <summary> /// 实际登录的用户 /// </summary> /// <param name="ruser">请求的用户ID</param> /// <param name="logUserID">微信OPENID</param> public void logUserConnected(string ruser, string logUserID) { if (rlist.ContainsKey(ruser)) { rlist.Remove(ruser); //Client方式表示对指定ID的浏览器发送GetUserId方法,浏览器通过javascrip方法userLoginSuccessful(bool,string)得到后台发来的登录成功,和微信OPENID Clients.Client(ruser).userLoginSuccessful(true, logUserID); } } }}

.NET C#使用微信公众号登录网站的实例解析由讯客互联微信应用栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“.NET C#使用微信公众号登录网站的实例解析