温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#怎么实现用户管理

发布时间:2022-06-15 16:17:05 来源:亿速云 阅读:308 作者:iii 栏目:开发技术

这篇文章主要介绍了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#怎么实现用户管理”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI