文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C#怎么实现用户管理

2023-07-02 09:48

关注

这篇文章主要介绍了C#怎么实现用户管理的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#怎么实现用户管理文章都会有所收获,下面我们一起来看看吧。

开始:

一、用户关注与退订事件:

在之前的消息处理中,我们在UserMessageHandler.cs,需要继承Senparc.Weixin.MP.MessageHandlers<TC>这个抽象类,并重写所有方法,在这里面,我们可以添加2个事件,一个是用户关注时候触发事件,一个是退订时候触发事件

        public override IResponseMessageBase OnEvent_ScanRequest(RequestMessageEvent_Scan requestMessage)        {            //通过扫描关注            var responseMessage = CreateResponseMessage<ResponseMessageText>();            responseMessage.Content = responseMessage.Content ?? string.Format("通过扫描二维码进入,场景值:{0}", requestMessage.EventKey);            return responseMessage;        }        /// <summary>        /// 订阅(关注)事件        /// </summary>        /// <returns></returns>        public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage)        {            var responseMessage = base.CreateResponseMessage<ResponseMessageText>();            responseMessage.Content = "欢迎关注";            return responseMessage;        }        /// <summary>        /// 退订        /// 实际上用户无法收到非订阅账号的消息,所以这里可以随便写。        /// unsubscribe事件的意义在于及时删除网站应用中已经记录的OpenID绑定,消除冗余数据。并且关注用户流失的情况。        /// </summary>        /// <returns></returns>        public override IResponseMessageBase OnEvent_UnsubscribeRequest(RequestMessageEvent_Unsubscribe requestMessage)        {            var responseMessage = base.CreateResponseMessage<ResponseMessageText>();            responseMessage.Content = "有空再来";            return responseMessage;        }

二、设计数据库

根据微信公众号开发文档,用户管理对应字段而建立,基本与官方提供的用户信息是一样的

C#怎么实现用户管理

建立用户组管理表(WX_Group)和用户表(WX_User)

C#怎么实现用户管理

C#怎么实现用户管理

三、提交同步数据

接口的实现方式我们使用了开源的Senparc.Weixin提供的专业的微信操作SDK来快速完成操作,在Senparc WX SDK下的Senparc.Weixin.MP.AdvancedAPIs ,通过OpenID到公众号同步到数据,再将本地数据修改。

        /// <summary>        /// 同步数据        /// </summary>        /// <param name="id">用户id</param>        /// <param name="officeId">对应的公众号id</param>        /// <returns></returns>        [HttpPost]        [SupportFilter]        public JsonResult SyncUser(string id,string officeId)        {            if (!string.IsNullOrWhiteSpace(id))            {                //填充数据                string[] arrs = id.Split(',');                List<BatchGetUserInfoData> list = new List<BatchGetUserInfoData>();                foreach (var m in arrs)                {                    list.Add(new BatchGetUserInfoData() {                        openid = m,                        lang = "zh-CN",                        LangEnum = Senparc.Weixin.Language.zh_CN                    });                }                //批量同步数据                WC_OfficalAccountsModel accountModel =  account_BLL.GetById(officeId);                var batchList =  Senparc.Weixin.MP.AdvancedAPIs.UserApi.BatchGetUserInfo(accountModel.AccessToken, list);                foreach (var info in batchList.user_info_list)                {                    WC_UserModel userModel = m_BLL.GetById(info.openid);                    if (userModel != null)                    {                        userModel.City = info.city;                        userModel.OpenId = info.openid;                        userModel.Id = info.openid;                        userModel.HeadImgUrl = info.headimgurl;                        userModel.Language = info.language;                        userModel.NickName = info.nickname;                        userModel.Province = info.province;                        userModel.Sex = info.sex;                        m_BLL.Edit(ref errors, userModel);                    }                }                LogHandler.WriteServiceLog(GetUserId(), "Ids:" + id, "成功", "删除", "WX_User");                return Json(JsonHandler.CreateMessage(1, Resource.SaveSucceed));            }            else            {                return Json(JsonHandler.CreateMessage(0, Resource.SaveFail));            }        }

关于“C#怎么实现用户管理”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“C#怎么实现用户管理”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯