Ejemplo n.º 1
0
        public async Task <ActionResult> BindLoginCallback(string userid)
        {
            //判断当前微信账号是否已经绑定了用户
            var count = await UserLoginRepository.GetAll().IgnoreQueryFilters()
                        .CountAsync(o => o.LoginProvider == WeChatAuthProviderApi.Name && o.ProviderKey == WeUser.openid);

            if (count > 0)
            {
                return(Redirect("/WeiXin/Error?msg=" + "当前微信已经绑定了账号".UrlEncode()));
            }
            ViewBag.UserId = userid;
            return(View());
        }
Ejemplo n.º 2
0
        public string GetOpenid(UserIdentifier userIdentifier)
        {
            using (CurrentUnitOfWork.SetTenantId(userIdentifier.TenantId))
            {
                UserLogin weixinUserLogin = UserLoginRepository.GetAll().Where(model => model.UserId == userIdentifier.UserId &&
                                                                               model.LoginProvider == "Weixin").FirstOrDefault();

                if (weixinUserLogin == null)
                {
                    return(null);
                }
                return(weixinUserLogin.ProviderKey);
            }
        }
Ejemplo n.º 3
0
        public User GetUserFromOpenId(int tenantId, string openId)
        {
            using (CurrentUnitOfWork.SetTenantId(tenantId))
            {
                UserLogin userLogin = UserLoginRepository.GetAll().Where(model => model.ProviderKey == openId).FirstOrDefault();

                if (userLogin == null)
                {
                    return(null);
                }
                User user = UserRepository.Get(userLogin.UserId);
                return(user);
            }
        }
Ejemplo n.º 4
0
        public async Task <ActionResult> LoginCallback(string guid)
        {
            //判断当前微信账号是否已经绑定用户
            var userLogin = await UserLoginRepository.GetAll().IgnoreQueryFilters()
                            .Where(o => o.LoginProvider == WeChatAuthProviderApi.Name && o.ProviderKey == WeUser.openid)
                            .FirstOrDefaultAsync();

            //if (userLogin == null)
            //{
            //    return Redirect("/MES/BindError");
            //    return Redirect("/WeiXin/Error?msg=" + "当前微信尚未绑定账号".UrlEncode());
            //}
            ViewBag.Guid = guid;
            return(View());
        }
Ejemplo n.º 5
0
        public virtual async Task <object> GetUserInfo(string openId)
        {
            var query = from userLogin in UserLoginRepository.GetAll().IgnoreQueryFilters()
                        join user in UserRepository.GetAll().IgnoreQueryFilters() on userLogin.UserId equals user.Id
                        where userLogin.LoginProvider == "MiniProgram" && userLogin.ProviderKey == openId
                        select user;

            var userInfo = await query.Include(o => o.Tenant).SingleOrDefaultAsync();

            if (userInfo == null)
            {
                return(null);
            }
            else
            {
                return(new { userInfo.Name, userInfo.Tenant?.TenancyName });
            }
        }