如何实现MVC微信网页授权获取用户OpenId
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下如何实现MVC微信网页授权获取用户OpenId,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!注意框架为M
千家信息网最后更新 2026年11月03日如何实现MVC微信网页授权获取用户OpenId
小编给大家分享一下如何实现MVC微信网页授权获取用户OpenId,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
注意框架为MVC 开发微信公众平台。场景为,在模板页中获取用户openid,想要进行验证的页面,集成模板页就可以了。
在_Layout.cshtml中加入如下代码
@ViewBag.Title - My ASP.NET Application @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr") @{ var code = HttpContext.Current.Request["code"]; Log.logmsg(code); string urlpath = HttpContext.Current.Request.Url.AbsoluteUri.ToString(); ViewBag.at = AdminUtil.GetOpenID(urlpath, code); }
类AdminUtil中加入GetOpenID方法
#region 获取OpenID ////// 获取OpenID /// public static string GetOpenID(string redirect_url, string code) { string AppID = WXModel.AppID; string AppSecret = WXModel.AppSecret; string openid = ""; openid = WXApi.GetOpenID(AppID, redirect_url, code, AppSecret); return openid; } #endregion
类WXApi中加入GetOpenID方法
#region 获取OpenId ////// 获取OpenId /// public static string GetOpenID(string appid, string redirect_url, string code, string screct) { string strJson = ""; if (string.IsNullOrEmpty(code)) { redirect_url = HttpUtility.UrlEncode(redirect_url); HttpContext.Current.Response.Redirect(string.Format("https://open.weixin.qq.com/connect/oauth3/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_base&state={2}#wechat_redirect", appid, redirect_url, new Random().Next(1000, 200000).ToString())); } else { strJson = HttpRequestUtil.RequestUrl(string.Format("https://api.weixin.qq.com/sns/oauth3/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appid, screct, code)); } return Tools.GetJsonValue(strJson, "openid"); } #endregion
public static class WXModel { public static string access_token; public static string AppID; public static string AppSecret; }////// 工具类 /// public class Tools { #region 获取Json字符串某节点的值 ////// 获取Json字符串某节点的值 /// public static string GetJsonValue(string jsonStr, string key) { string result = string.Empty; if (!string.IsNullOrEmpty(jsonStr)) { key = "\"" + key.Trim('"') + "\""; int index = jsonStr.IndexOf(key) + key.Length + 1; if (index > key.Length + 1) { //先截逗号,若是最后一个,截"}"号,取最小值 int end = jsonStr.IndexOf(',', index); if (end == -1) { end = jsonStr.IndexOf('}', index); } result = jsonStr.Substring(index, end - index); result = result.Trim(new char[] { '"', ' ', '\'' }); //过滤引号或空格 } } return result; } #endregion }
public class HttpRequestUtil { #region 请求Url,不发送数据 /// /// 请求Url,不发送数据 /// public static string RequestUrl(string url) { return RequestUrl(url, "POST"); } #endregion #region 请求Url,不发送数据 /// /// 请求Url,不发送数据 /// public static string RequestUrl(string url, string method) { // 设置参数 HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; CookieContainer cookieContainer = new CookieContainer(); request.CookieContainer = cookieContainer; request.AllowAutoRedirect = true; request.Method = method; request.ContentType = "text/html"; request.Headers.Add("charset", "utf-8"); //发送请求并获取相应回应数据 HttpWebResponse response = request.GetResponse() as HttpWebResponse; //直到request.GetResponse()程序才开始向目标网页发送Post请求 Stream responseStream = response.GetResponseStream(); StreamReader sr = new StreamReader(responseStream, Encoding.Default); //返回结果网页(html)代码 string content = sr.ReadToEnd(); return content; } #endregion }注意:需要在微信公众平台中设置授权回调域
以上是"如何实现MVC微信网页授权获取用户OpenId"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
数据
网页
用户
篇文章
中加
代码
公众
内容
字符
字符串
平台
方法
模板
节点
最小
不怎么
参数
场景
大部分
工具
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网黑科技
互联网中国科技
腾讯阿里互联网科技
与互联网科技公司
易互联网科技有限公司
狮子座互联网科技
唐信互联网科技
浩特互联网科技
互联网女皇 腾讯科技
北京禾田雨橡互联网科技
一五八零互联网科技
互联网金融和金融科技
天扬科技互联网广告
科技大学互联网专业好不好
现代互联网科技股
阿大互联网科技有限公司
广西互联网科技孵化中心
四川慕妮娅互联网科技有限公司
银川新华互联网科技学校是国营吗
互联网领先科技活动
互联网科技社
互联网络科技有限公司
远拓互联网科技
甘肃拓世互联网科技有限公司
互联网科技公司需要的职位
互联网企业和科技型企业
乌鲁木齐新华智原互联网科技学校
烟台灵鸽互联网科技有限公司
众安科技工业互联网合作
萌小萌互联网科技河南有限公司