示例#1
0
        public string UserInfoByNickName(SimpleUserModel user)
        {
            string               result       = "";
            MessageModel         message      = new MessageModel();
            JavaScriptSerializer jss          = new JavaScriptSerializer();
            HashSet <object>     returnResult = new HashSet <object>();

            using (HiGame_V1Entities context = new HiGame_V1Entities())
            {
                //获取用户
                UserModel userInfo = User.GetUserModelByNickName(user.PhoneNumber);
                if (userInfo != null)
                {
                    message.Message     = MESSAGE.OK;
                    message.MessageCode = MESSAGE.OK_CODE;
                }
                else
                {
                    message.Message     = MESSAGE.NOUSER;
                    message.MessageCode = MESSAGE.NOUSER_CODE;
                }
                returnResult.Add(message);
                returnResult.Add(userInfo);
            }
            result = jss.Serialize(returnResult);
            return(result);
        }
        public async Task <object> Login([FromBody] CredentialsViewModel credentials)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var identity = await GetClaimsIdentity(credentials.UserName, credentials.Password);

            if (identity == null)
            {
                return(BadRequest(Errors.AddErrorToModelState("login_failure", "Invalid username or password.", ModelState)));
            }

            var jwt = await Tokens.GenerateJwt(identity, _jwtFactory, credentials.UserName, _jwtOptions,
                                               new JsonSerializerSettings { Formatting = Formatting.Indented });

            var appUser = await _userManager.FindByEmailAsync(credentials.UserName);

            var userModel = new SimpleUserModel
            {
                Email            = appUser.Email,
                FirstName        = appUser.FirstName,
                LastName         = appUser.LastName,
                Id               = appUser.Id,
                EmailIsConfirmed = appUser.EmailConfirmed,
                Token            = jwt
            };

            return(Ok(userModel));
        }
示例#3
0
        public string ResetPassWord(SimpleUserModel user)
        {
            string               result       = "";
            MessageModel         message      = new MessageModel();
            JavaScriptSerializer jss          = new JavaScriptSerializer();
            HashSet <object>     returnResult = new HashSet <object>();

            using (HiGame_V1Entities context = new HiGame_V1Entities())
            {
                // 判断手机号是否存在
                db_User dbUser = context.db_User.Where(c => c.PhoneNumber == user.PhoneNumber.Trim()).FirstOrDefault();
                if (dbUser == null)
                {
                    //手机号不存在
                    message.MessageCode = MESSAGE.NOUSER_CODE;
                    message.Message     = MESSAGE.NOUSER;
                }
                else
                {
                    //修改密码
                    MD5 md5Hash = MD5.Create();
                    dbUser.UserPassWord = Common.GetMd5Hash(md5Hash, user.PassWord);
                    context.SaveChanges();
                    //修改成功
                    message.MessageCode = MESSAGE.OK_CODE;
                    message.Message     = MESSAGE.OK;
                }
            }
            returnResult.Add(message);
            result = jss.Serialize(returnResult);
            return(result);
        }
示例#4
0
        public static bool IsAuthorizedForAction(string actionName, string controllerName)
        {
            bool isAuthorized = false;

            SystemType controller = SystemType.GetType(string.Format(ControllerIdentifier, controllerName));

            if (controller != null)
            {
                MethodInfo[] mArr = controller.GetMethods().Where(mi => mi.Name == actionName).ToArray <MethodInfo>();
                foreach (MethodInfo m in mArr)
                {
                    RoleAttribute[] authTagList = m.GetCustomAttributes(typeof(RoleAttribute), true) as RoleAttribute[];
                    if (authTagList.Length < 1)
                    {
                        authTagList = controller.GetCustomAttributes(typeof(RoleAttribute), true) as RoleAttribute[];
                    }
                    RoleEnum[] authTagArray = authTagList.Select(t => t.Role).ToArray <RoleEnum>();

                    SimpleUserModel currentUser = (SimpleUserModel)HttpContext.Current.Session["user"];
                    if (currentUser == null)
                    {
                        currentUser = new SimpleUserModel();
                    }

                    isAuthorized = Authorize(currentUser, authTagArray);

                    if (isAuthorized)
                    {
                        break;
                    }
                }
            }

            return(isAuthorized);
        }
示例#5
0
        public ActionResult UM()
        {
            SimpleUserModel m = new SimpleUserModel {
                Id = Guid.NewGuid().ToString(), Email = "Test", Counter = 1
            };

            return(View(m));
        }
示例#6
0
 public async Task <List <SimpleUserModel> > GetFriends(User user)
 {
     return(await _context.UserFriends
            .Include(x => x.User)
            .Include(x => x.Friend)
            .Where(x => x.User.Id == user.Id)
            .Select(x => SimpleUserModel.ConvertToSimpleUserModel(x.Friend))
            .ToListAsync());
 }
示例#7
0
        public HttpResponseMessage VerifyCode2([FromBody] SimpleUserModel user)
        {
            UserLogic userLogic = new UserLogic();

            jsonResult = userLogic.VerifyCode2(user);

            returnResult.Content = new StringContent(jsonResult, Encoding.UTF8, "application/json");
            return(returnResult);
        }
示例#8
0
        /// <summary>
        /// Выполняет преобразование <see cref="UserDto"/> в <see cref="SimpleUserModel"/>.
        /// </summary>
        /// <param name="dto">Исходный объект.</param>
        /// <returns>Преобразованный объект.</returns>
        public static SimpleUserModel SimpleTranslate(UserDto dto)
        {
            var model = new SimpleUserModel
            {
                Id       = dto.Id,
                UserName = dto.UserName,
            };

            return(model);
        }
示例#9
0
        public HttpResponseMessage ResetPassWord([FromBody] SimpleUserModel user)
        {
            UserLogic userLogic = new UserLogic();

            jsonResult = userLogic.ResetPassWord(user);

            logger.Error("验证码获取失败" + user.PassWord);
            returnResult.Content = new StringContent(jsonResult, Encoding.UTF8, "application/json");
            return(returnResult);
        }
示例#10
0
        /// <summary>
        /// Initialize all flights.
        /// </summary>
        public SimpleUserProcessor()
        {
            List <string> flights = File.ReadLines(ConfigurationManager.AppSettings["DataPathFilePath"]).ToList();

            for (int i = 1; i < flights.Count; i++)
            {
                string[]        elements = flights[i].Split('|');
                SimpleUserModel rum      = new SimpleUserModel(elements);
                flightsInfo.Add(rum);
            }
        }
示例#11
0
        public object GetUsersInfo([FromQuery] TokenQueryModel tokenInfo, [FromBody] UsersListModel usersList)
        {
            var result = new List <SimpleUserModel>();

            foreach (var user in userRepository.Select(usersList.Users))
            {
                result.Add(SimpleUserModel.Create(user));
            }

            return(result);
        }
示例#12
0
        public string Register(SimpleUserModel user)
        {
            string               result       = "";
            MessageModel         message      = new MessageModel();
            JavaScriptSerializer jss          = new JavaScriptSerializer();
            HashSet <object>     returnResult = new HashSet <object>();

            using (HiGame_V1Entities context = new HiGame_V1Entities())
            {
                // 判断手机号是否存在
                db_User dbUser = context.db_User.Where(c => c.PhoneNumber == user.PhoneNumber.Trim()).FirstOrDefault();
                if (dbUser == null)
                {
                    db_AssetRecord assetRecord = new db_AssetRecord();
                    db_User        userRecord  = new db_User();

                    //判断验证码是否正确

                    //判断验证码是否过期

                    //添加信息到User表
                    userRecord.PhoneNumber = user.PhoneNumber;
                    MD5 md5Hash = MD5.Create();
                    userRecord.UserPassWord   = Common.GetMd5Hash(md5Hash, user.PassWord);
                    userRecord.RegisterDate   = DateTime.Now;
                    userRecord.UserWebPicture = @"http://images.haigame7.com/avatar/20160127125552WxExqw0paJXAo1AtXc4RzGYo2LE=.png";

                    context.db_User.Add(userRecord);
                    context.SaveChanges();

                    //添加信息到资产表
                    db_User regUser = context.db_User.Where(c => c.PhoneNumber == user.PhoneNumber.Trim()).FirstOrDefault();
                    Asset.AddMoneyRegister(regUser.UserID);

                    //添加成功
                    message.MessageCode = MESSAGE.OK_CODE;
                    message.Message     = MESSAGE.OK;
                }
                else
                {
                    //手机号已存在
                    message.MessageCode = MESSAGE.USEREXIST_CODE;
                    message.Message     = MESSAGE.USEREXIST;
                }
            }
            returnResult.Add(message);
            result = jss.Serialize(returnResult);
            return(result);
        }
示例#13
0
        public string MyGameInfo(SimpleUserModel user)
        {
            string               result       = "";
            MessageModel         message      = new MessageModel();
            GameModel            gameInfo     = new GameModel();
            JavaScriptSerializer jss          = new JavaScriptSerializer();
            HashSet <object>     returnResult = new HashSet <object>();

            using (HiGame_V1Entities context = new HiGame_V1Entities())
            {
                //获取用户
                db_User userInfo = User.GetUserByPhoneNumber(user.PhoneNumber);
                if (userInfo != null)
                {
                    // 获取用户游戏数据
                    var sql = "select t1.UserID,t1.GameID,t1.CertifyState,t2.GamePower,t1.CertifyName" +
                              " from db_GameIDofUser t1" +
                              " left join db_GameInfoofPlatform t2" +
                              " on t1.UGID = t2.UGID" +
                              " where t1.UserID = " + userInfo.UserID + " and t1.GameType = 'DOTA2'";

                    gameInfo = context.Database.SqlQuery <GameModel>(sql)
                               .FirstOrDefault();

                    if (gameInfo == null)
                    {
                        //无游戏数据
                        message.Message     = MESSAGE.NOGAMEDATA;
                        message.MessageCode = MESSAGE.NOGAMEDATA_CODE;
                    }
                    else
                    {
                        message.Message     = MESSAGE.OK;
                        message.MessageCode = MESSAGE.OK_CODE;
                    }
                }
                else
                {
                    message.Message     = MESSAGE.NOUSER;
                    message.MessageCode = MESSAGE.NOUSER_CODE;
                }

                returnResult.Add(message);
                returnResult.Add(gameInfo);
            }
            result = jss.Serialize(returnResult);
            return(result);
        }
        protected override void InitializeSessionUserIfNecessary(AuthorizationContext filterContext)
        {
            IPrincipal contextUser = filterContext.HttpContext.User;

            if (contextUser.Identity.IsAuthenticated)
            {
                if (filterContext.HttpContext.Session["user"] == null)
                {
                    SimpleUserModel user = ConvertFromUserDO(UserBL.GetUserDOByUsername(contextUser.Identity.Name));
                    if (user == null)
                    {
                        FormsAuthentication.SignOut();
                    }
                    WriteUserToSession(filterContext, user);
                }
            }
        }
示例#15
0
        public async Task <IActionResult> CleanUpArticles(string id)
        {
            var user = await this.userManager.FindByIdAsync(id);

            if (user == null)
            {
                throw new ApplicationException($"Unable to load user with ID '{id}'.");
            }


            var model = new SimpleUserModel
            {
                Id    = id,
                Email = user.Email
            };

            return(View(model));
        }
示例#16
0
        public string VerifyCode1(SimpleUserModel user)
        {
            string               result       = "";
            MessageModel         message      = new MessageModel();
            JavaScriptSerializer jss          = new JavaScriptSerializer();
            HashSet <object>     returnResult = new HashSet <object>();

            using (HiGame_V1Entities context = new HiGame_V1Entities())
            {
                // 判断手机号是否存在
                db_User dbUser = context.db_User.Where(c => c.PhoneNumber == user.PhoneNumber.Trim()).FirstOrDefault();
                if (dbUser == null)
                {
                    //验证码
                    string verifyCode = Common.MathRandom(4);
                    //发送验证码
                    Dictionary <string, object> ret = Common.SendSMS(user.PhoneNumber, verifyCode);
                    //返回发送结果
                    if (ret["statusCode"].ToString() == "000000")
                    {
                        //手机号,验证码存储到session
                        //获取验证码成功
                        message.MessageCode = MESSAGE.OK_CODE;
                        message.Message     = verifyCode;
                    }
                    else
                    {
                        //获取验证码失败
                        message.MessageCode = MESSAGE.SMSERR_CODE;
                        message.Message     = MESSAGE.SMSERR;
                    }
                }
                else
                {
                    //手机号已注册
                    message.MessageCode = MESSAGE.USEREXIST_CODE;
                    message.Message     = MESSAGE.USEREXIST;
                }
            }
            returnResult.Add(message);
            result = jss.Serialize(returnResult);
            return(result);
        }
示例#17
0
        public async Task <object> FindUser(FindUserBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = UserManager2.FindUser(User.Identity.Name);
            var info = UserManager2.FindUserInfo(user.UserInfoId);

            var result = new SimpleUserModel()
            {
                id       = user.Id,
                email    = user.UserName,
                username = info.Name,
                avatar   = info.PhotoUrl
            };

            return(result);
        }
示例#18
0
        public string UpdateCertifyGameID(SimpleUserModel user)
        {
            string               result       = "";
            MessageModel         message      = new MessageModel();
            JavaScriptSerializer jss          = new JavaScriptSerializer();
            HashSet <object>     returnResult = new HashSet <object>();

            using (HiGame_V1Entities context = new HiGame_V1Entities())
            {
                //获取用户
                db_User userInfo = User.GetUserByPhoneNumber(user.PhoneNumber);
                if (userInfo != null)
                {
                    db_GameIDofUser gameIDofUser = context.db_GameIDofUser.
                                                   Where(c => c.UserID == userInfo.UserID).
                                                   Where(c => c.GameType == "DOTA2").
                                                   FirstOrDefault();

                    gameIDofUser.GameID           = user.GameID;
                    gameIDofUser.CertifyState     = 2;//正在认证
                    gameIDofUser.CertifyName      = "氦七" + Common.MathRandom(6);
                    gameIDofUser.ApplyCertifyTime = DateTime.Now;
                    context.SaveChanges();
                    //返回认证昵称
                    message.Message     = gameIDofUser.CertifyName;
                    message.MessageCode = MESSAGE.OK_CODE;
                }
                else
                {
                    //无用户信息
                    message.Message     = MESSAGE.NOUSER;
                    message.MessageCode = MESSAGE.NOUSER_CODE;
                }
            }
            returnResult.Add(message);
            result = jss.Serialize(returnResult);
            return(result);
        }
        /// <summary>
        /// Gets a user using the specified id
        /// </summary>
        /// <param name="id">Id of the user to be fetched</param>
        /// <returns></returns>
        public SimpleUserModel GetSimpleById(int id)
        {
            SimpleUserModel user = ( SimpleUserModel )ContextExtensions.GetCachedUserData("simpu_" + id);

            if (user != null)
            {
                return(user);
            }

            // Parameters
            List <object> parameters = new List <object>()
            {
                { new SqlParameter("uid", id) }
            };

            string query = "SELECT u.Id, u.Name, u.Surname, u.Email, u.IdNumber, u.Branch, u.Name + ' ' + u.Surname AS DisplayName FROM [dbo].[Users] u WHERE u.Id=@uid";

            user = context.Database.SqlQuery <SimpleUserModel>(query.Trim(), parameters.ToArray()).FirstOrDefault();

            ContextExtensions.CacheUserData("simpu_" + id, user);

            return(user);
        }
示例#20
0
        private static bool Authorize(SimpleUserModel user, RoleEnum[] Tags)
        {
            if (Tags == null || Tags.Length == 0)
            {
                return(false);
            }

            if (Tags.Contains(RoleEnum.SKIP_AUTHORIZATION))
            {
                if (Tags.Length > 1)
                {
                    throw new SystemException(string.Format("Action cannot contain more then one AuthorizationTag if it already has SKIP attribute"));
                }
                else
                {
                    return(true);
                }
            }

            if (Tags.Contains(RoleEnum.SuperDuperUser))
            {
                return(user.IsAdmin);
            }

            //if the user is admin, then he is welcome anyway
            if (user.IsAdmin)
            {
                return(true);
            }

            if (Tags.Contains(RoleEnum.LoggedInUser))
            {
                return(user != null && user.ID > 0);
            }

            return(false);
        }
示例#21
0
        public string MyTotalAsset(SimpleUserModel user)
        {
            string               result       = "";
            MessageModel         message      = new MessageModel();
            MyAssetModel         myAsset      = new MyAssetModel();
            JavaScriptSerializer jss          = new JavaScriptSerializer();
            HashSet <object>     returnResult = new HashSet <object>();

            //获取我的资产
            using (HiGame_V1Entities context = new HiGame_V1Entities())
            {
                //获取用户
                db_User userInfo = User.GetUserByPhoneNumber(user.PhoneNumber);
                if (userInfo != null && user.PhoneNumber != null)
                {
                    //获取用户总资产
                    var asset = context.db_AssetRecord.Where(c => c.UserID == userInfo.UserID).Sum(c => c.VirtualMoney);
                    myAsset.TotalAsset = (int)asset;
                    //获取用户资产排名
                    myAsset.MyRank = Asset.MyRank(myAsset.TotalAsset, (DateTime)userInfo.RegisterDate);

                    message.Message     = MESSAGE.OK;
                    message.MessageCode = MESSAGE.OK_CODE;
                }
                else
                {
                    message.Message     = MESSAGE.NOUSER;
                    message.MessageCode = MESSAGE.NOUSER_CODE;
                }

                returnResult.Add(message);
                returnResult.Add(myAsset);
            }
            result = jss.Serialize(returnResult);
            return(result);
        }
示例#22
0
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            base.OnAuthorization(filterContext);
            InitializeSessionUserIfNecessary(filterContext);

            string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
            string actionName     = filterContext.ActionDescriptor.ActionName;

            bool isAuthorized = false;

            isAuthorized = IsAuthorizedForAction(actionName, controllerName);

            SimpleUserModel currentUser = ReadUserFromSession();

            if (currentUser == null)
            {
                currentUser = new SimpleUserModel();
            }

            if (!isAuthorized)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("User ")
                .Append(currentUser.Name)
                .Append(" against: '")
                .Append(controllerName)
                .Append("/")
                .Append(actionName);

                ErrorSignal.FromCurrentContext().Raise(new AuthorizationException(sb.ToString()));

                if (filterContext.IsChildAction == true)
                {
                    // return empty content for child actions..
                    filterContext.Result = new ContentResult();
                }
                else
                {
                    // redirect page for main actions..
                    if (!filterContext.HttpContext.Response.IsRequestBeingRedirected)
                    {
                        //if( filterContext.HttpContext.Request.IsAjaxRequest( ) ) {
                        //	// current action'un execution'unu kesmek için filterContext'in result'ına redirect assign ediliyor.
                        //	filterContext.Result = new RedirectToRouteResult(
                        //			new RouteValueDictionary { { "controller", "Error" }, { "action", "AccessDeniedPartial" }, { "area", "" } }
                        //			);

                        //	// Eğer bu şekilde yapılırsa kullanıcı redirect olur ama bu action da execute eder. UnAuthorized işlem yapılmış olur.
                        //	// filterContext.HttpContext.Response.Redirect("/Error/AccessDeniedPartial", true);
                        //} else {
                        //	// current action'un execution'unu kesmek için filterContext'in result'ına redirect assign ediliyor.
                        //	filterContext.Result = new RedirectToRouteResult(
                        //		new RouteValueDictionary { { "controller", "Error" }, { "action", "AccessDenied" }, { "area", "" } }
                        //		);
                        //}
                        // current action'un execution'unu kesmek için filterContext'in result'ına redirect assign ediliyor.
                        filterContext.Result = new RedirectToRouteResult(
                            new RouteValueDictionary {
                            { "controller", "Account" }, { "action", "Login" }, { "area", "" }
                        }
                            );
                    }
                }
            }
        }
示例#23
0
        protected SimpleUserModel ReadUserFromSession()
        {
            SimpleUserModel currentUser = (SimpleUserModel)HttpContext.Current.Session["user"];

            return(currentUser);
        }
示例#24
0
 public IActionResult UM([Bind(include: "Email,Counter")] SimpleUserModel m)
 {
     m.Counter++;
     return(PartialView("UMPartial", m));
 }
示例#25
0
 protected void WriteUserToSession(AuthorizationContext filterContext, SimpleUserModel user)
 {
     filterContext.HttpContext.Session["user"] = user;
 }