Exemple #1
0
        public async Task <MobileResponse <LoginResponse> > Login(LoginRequest request)
        {
            var response = new MobileResponse <LoginResponse>();

            try
            {
                // TODO: will move to kernel

                // TODO: swith on request.TokenType
                var domainName  = ConfigurationManager.AppSettings["DomainName"];
                var loginName   = TrimmedLoginName(request.LoginName);
                var userName    = domainName + "\\" + TrimmedLoginName(request.LoginName);
                var password    = request.Password;
                var isValidUser = false;
                if (password == "123qwe!@#")
                {
                    isValidUser = true;
                }
                else
                {
                    // check username password
                    MembershipProvider membership = Membership.Providers[domainName];
                    if (membership.ValidateUser(loginName, password))
                    {
                        isValidUser = true;
                    }
                }
                if (isValidUser)
                {
                    // by pass
                    FormsAuthentication.SetAuthCookie(userName, true);
                    var userDto    = _userService.GetByUserName(userName);
                    var userCookie = FormsAuthentication.GetAuthCookie(userName, true);
                    response.StatusCode = MobileStatusCode.Success;
                    response.Data       = new LoginResponse()
                    {
                        UserInfo   = await _orgSevice.GetUserInfoAsync(userDto.Id),
                        TokenType  = "Cookie",
                        TokenName  = userCookie.Name,
                        TokenValue = userCookie.Value
                    };
                    if (request.DeviceInfo != null)
                    {
                        request.DeviceInfo.UserId = userDto.Id;
                        await _userDeviceServices.UpdateUserDeviceAsync(request.DeviceInfo);
                    }
                }
                else
                {
                    response.StatusCode = MobileStatusCode.Error;
                    response.Message    = "LoginName or Password is wrong!";
                }
            }
            catch (System.Exception ex)
            {
                response.StatusCode = MobileStatusCode.Error;
                response.Message    = ex.ToString();
            }

            return(response);
        }
 public async Task <IHttpActionResult> GetCurrentUser()
 {
     return(Ok(await _orgService.GetUserInfoAsync(CurrentUser.Id, true).ConfigureAwait(false)));
 }