예제 #1
0
        /// <summary>
        /// GET: Register User List
        /// </summary>
        /// <returns></returns>
        public ActionResult RegisterUserList()
        {
            RNDLogin NUR = null;

            List <SelectListItem> UserPermissionLevel = null;

            try
            {
                var client = GetHttpClient();
                var task   = client.GetAsync(Api + "api/Register?UserId=" + 0).ContinueWith((res) =>
                {
                    if (res.Result.IsSuccessStatusCode)
                    {
                        NUR = JsonConvert.DeserializeObject <RNDLogin>(res.Result.Content.ReadAsStringAsync().Result);
                        if (NUR != null)
                        {
                            UserPermissionLevel = NUR.UserPermissionLevel;
                        }
                    }
                });
                task.Wait();

                ViewBag.ddlPermissionLevel = UserPermissionLevel;
            }
            catch (Exception ex)
            {
                _logger.Error(ex);
            }
            return(View(NUR));
        }
예제 #2
0
        /// <summary>
        /// Update the existing register user details
        /// </summary>
        /// <param name="login"></param>
        /// <returns></returns>
        public HttpResponseMessage Put(RNDLogin login)
        {
            try
            {
                if (login != null)
                {
                    AdoHelper    ado    = new AdoHelper();
                    CurrentUser  user   = ApiUser;
                    SqlParameter param1 = new SqlParameter("@UserId", login.UserId);
                    SqlParameter param2 = new SqlParameter("@FirstName", login.FirstName);
                    SqlParameter param3 = new SqlParameter("@LastName", login.LastName);
                    SqlParameter param4 = new SqlParameter("@UserType", login.UserType);
                    SqlParameter param5 = new SqlParameter("@PermissionLevel", login.PermissionLevel);

                    var id = ado.ExecScalarProc("RNDLogin_Update", "RND", new object[] { param1, param2, param3, param4, param5 });
                    return(Serializer.ReturnContent(MessageConstants.UserRegistered, this.Configuration.Services.GetContentNegotiator(), this.Configuration.Formatters, this.Request));
                }
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message);
                return(new HttpResponseMessage(HttpStatusCode.InternalServerError));
            }
            return(Serializer.ReturnContent(HttpStatusCode.NotImplemented, this.Configuration.Services.GetContentNegotiator(), this.Configuration.Formatters, this.Request));
        }
예제 #3
0
        public ActionResult SaveRegisterUser(RNDLogin model)
        {
            var client = GetHttpClient();

            if (model.UserId == 0)
            {
                var task = client.PostAsJsonAsync(Api + "api/Register", model).ContinueWith((res) =>
                {
                    if (res.Result.IsSuccessStatusCode)
                    {
                        string Register = JsonConvert.DeserializeObject <string>(res.Result.Content.ReadAsStringAsync().Result);
                        if (Register != null)
                        {
                        }
                    }
                });
                task.Wait();
            }
            else
            {
                var task = client.PutAsJsonAsync(Api + "api/Register", model).ContinueWith((res) =>
                {
                    if (res.Result.IsSuccessStatusCode)
                    {
                        string Register = JsonConvert.DeserializeObject <string>(res.Result.Content.ReadAsStringAsync().Result);
                        if (Register != null)
                        {
                        }
                    }
                });
                task.Wait();
            }

            return(RedirectToAction("RegisterUserList"));
        }
예제 #4
0
 public ActionResult Index()
 {
     ViewBag.Title = "Home Page";
     try
     {
         RNDLogin rndLogin = new RNDLogin
         {
             UserName        = "******",
             Password        = "******",
             FirstName       = "admin",
             LastName        = "admin",
             CreatedBy       = 1,
             StatusCode      = "A",
             PermissionLevel = PermissionConstants.SuperAdmin,
             UserType        = PermissionConstants.SuperAdmin,
         };
         var config = new HttpConfiguration();
         WebApiConfig.Register(config);
         var server   = new HttpServer(config);
         var client   = new HttpClient(server);
         var response = client.PostAsJsonAsync(Request.Url.AbsoluteUri + "api/Register", rndLogin).Result;
     }
     catch (Exception ex)
     {
         _logger.Error(ex.Message);
         throw;
     }
     return(View());
 }
예제 #5
0
        public HttpResponseMessage Get(string UserName, string UserAnswer)
        {
            // SqlDataReader reader = null;
            RNDLogin     dbUser = null;
            ApiViewModel VM     = null;

            try
            {
                VM = new ApiViewModel();
                if (!string.IsNullOrEmpty(UserName) && !string.IsNullOrEmpty(UserAnswer))
                {
                    AdoHelper    ado    = new AdoHelper();
                    SqlParameter param1 = new SqlParameter("@UserName", UserName);
                    SqlParameter param2 = new SqlParameter("@UserAnswer", UserAnswer);
                    using (SqlDataReader reader = ado.ExecDataReaderProc("RNDResetPassword", "RND", new object[] { param1, param2 }))
                    {
                        if (reader.HasRows && reader.Read())
                        {
                            dbUser                 = new RNDLogin();
                            dbUser.UserId          = Convert.ToInt32(reader["UserId"]);
                            dbUser.FirstName       = Convert.ToString(reader["FirstName"]);
                            dbUser.LastName        = Convert.ToString(reader["LastName"]);
                            dbUser.UserType        = Convert.ToString(reader["UserType"]);
                            dbUser.PermissionLevel = Convert.ToString(reader["PermissionLevel"]);
                            dbUser.IssueDate       = (!string.IsNullOrEmpty(reader["IssueDate"].ToString())) ? Convert.ToDateTime(reader["IssueDate"]) : (DateTime?)null;
                            dbUser.CreatedBy       = Convert.ToInt32(reader["CreatedBy"]);
                            dbUser.CreatedOn       = Convert.ToDateTime(reader["CreatedOn"]);
                            dbUser.StatusCode      = Convert.ToString(reader["StatusCode"]);
                            VM.Custom              = dbUser;
                            string token = Guid.NewGuid().ToString("D") + Guid.NewGuid().ToString("D");
                            dbUser.UserName = UserName;
                            dbUser.Token    = token;
                            VM.Custom       = dbUser;

                            ado = new AdoHelper();
                            SqlParameter param3 = new SqlParameter("@UserId", dbUser.UserId);
                            SqlParameter param4 = new SqlParameter("@Token", token);
                            ado.ExecScalarProc("RNDSecurityTokens_Insert", "RND", new object[] { param3, param4 });
                        }
                        else
                        {
                            VM.Message = MessageConstants.InvalidUser;
                        }

                        if (ado._conn != null && ado._conn.State == System.Data.ConnectionState.Open)
                        {
                            ado._conn.Close(); ado._conn.Dispose();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message);
                return(new HttpResponseMessage(HttpStatusCode.InternalServerError));
            }
            return(Serializer.ReturnContent(VM, this.Configuration.Services.GetContentNegotiator(), this.Configuration.Formatters, this.Request));
        }
예제 #6
0
        /// <summary>
        /// Save the new register user details
        /// </summary>
        /// <param name="login"></param>
        /// <returns></returns>
        public HttpResponseMessage Post(RNDLogin login)
        {
            try
            {
                if (login != null)
                {
                    bool exists = CheckIfUserExists(login.UserName);
                    if (exists)
                    {
                        return(Serializer.ReturnContent("UserName already exists.", this.Configuration.Services.GetContentNegotiator(), this.Configuration.Formatters, this.Request));
                    }
                    AdoHelper ado            = new AdoHelper();
                    string    strCurrentDate = DateTime.Now.ToString();
                    byte[]    passwordSalt   = Encryptor.EncryptText(strCurrentDate, login.UserName);
                    string    se             = Convert.ToBase64String(passwordSalt);
                    byte[]    passwordHash   = Encryptor.GenerateHash(login.Password, se.ToString());
                    login.IsSecurityApplied = true;
                    login.PasswordHash      = passwordHash;
                    login.PasswordSalt      = passwordSalt;
                    login.CreatedOn         = DateTime.Now;
                    CurrentUser  user          = ApiUser;
                    int          UserID        = 1;
                    string       DefaultStatus = "A";
                    SqlParameter param1        = new SqlParameter("@UserName", login.UserName);
                    SqlParameter param2        = new SqlParameter("@FirstName", login.FirstName);
                    SqlParameter param3        = new SqlParameter("@LastName", login.LastName);
                    SqlParameter param4        = new SqlParameter("@PasswordHash", login.PasswordHash);
                    SqlParameter param5        = new SqlParameter("@PasswordSalt", login.PasswordSalt);
                    //  SqlParameter param6 = new SqlParameter("@UserType", login.UserType);
                    SqlParameter param6 = new SqlParameter("@UserType", login.PermissionLevel);
                    SqlParameter param7 = new SqlParameter("@PermissionLevel", login.PermissionLevel);

                    if (user != null)
                    {
                        UserID        = user.UserId;
                        DefaultStatus = "DR";
                    }
                    SqlParameter param8 = new SqlParameter("@CreatedBy", UserID);
                    SqlParameter param9 = new SqlParameter("@CreatedOn", DateTime.Now);
                    //   SqlParameter param10 = new SqlParameter("@StatusCode", "DR");
                    SqlParameter param10 = new SqlParameter("@StatusCode", DefaultStatus);
                    var          id      = ado.ExecScalarProc("RNDLogin_Insert", "RND", new object[] { param1, param2, param3, param4, param5, param6, param7, param8, param9, param10 });
                    if (id != null)
                    {
                        login.UserId = Convert.ToInt32(id);
                        return(Serializer.ReturnContent(MessageConstants.UserRegistered, this.Configuration.Services.GetContentNegotiator(), this.Configuration.Formatters, this.Request));
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message);
                return(new HttpResponseMessage(HttpStatusCode.InternalServerError));
            }
            return(Serializer.ReturnContent(HttpStatusCode.NotImplemented, this.Configuration.Services.GetContentNegotiator(), this.Configuration.Formatters, this.Request));
        }
예제 #7
0
        /// <summary>
        /// Login Page
        /// </summary>
        /// <returns></returns>
        // GET: Login
        public ActionResult Index()
        {
            RNDLogin login = new RNDLogin();

            ViewBag.msg = (TempData["msg"] != null) ? TempData["msg"] : null;
            if (Request.Cookies["RNDLogin"] != null)
            {
                var loginCookie = Request.Cookies["RNDLogin"];
                if (loginCookie != null && loginCookie.Values.Count > 0)
                {
                    login.UserName = loginCookie.Values["UserName"];
                    //login.Password = loginCookie.Values["Password"];
                }
            }
            return(View(login));
        }
예제 #8
0
        /// <summary>
        /// Retrieve the Registered User Details data and Assign to Grid
        /// </summary>
        /// <param name="option"></param>
        /// <returns></returns>
        private DataSearch <RNDLogin> GetRegisteredUser(DataGridoption option)
        {
            AdoHelper ado = new AdoHelper();
            //SqlDataReader reader = null;
            List <RNDLogin>     lstRNDLogin     = new List <RNDLogin>();
            List <SqlParameter> lstSqlParameter = new List <SqlParameter>();

            lstSqlParameter.Add(new SqlParameter("@CurrentPage", option.pageIndex));
            lstSqlParameter.Add(new SqlParameter("@NoOfRecords", option.pageSize));
            AddSearchFilter(option, lstSqlParameter);
            using (SqlDataReader reader = ado.ExecDataReaderProc("RNDRegisteredUser_Read", "RND", lstSqlParameter.Cast <object>().ToArray()))
            {
                if (reader.HasRows)
                {
                    RNDLogin UD = null;
                    while (reader.Read())
                    {
                        UD                 = new RNDLogin();
                        UD.total           = Convert.ToInt32(reader["total"]);
                        UD.UserId          = Convert.ToInt32(reader["UserId"]);
                        UD.UserName        = Convert.ToString(reader["UserName"]);
                        UD.FirstName       = Convert.ToString(reader["FirstName"]);
                        UD.LastName        = Convert.ToString(reader["LastName"]);
                        UD.PermissionLevel = Convert.ToString(reader["PermissionLevel"]);
                        UD.Created_By      = Convert.ToString(reader["CreatedBy"]);
                        UD.Created_On      = Convert.ToString(reader["CreatedOn"]);
                        UD.StatusCode      = Convert.ToString(reader["StatusCode"]);
                        lstRNDLogin.Add(UD);
                    }
                }
                if (ado._conn != null && ado._conn.State == System.Data.ConnectionState.Open)
                {
                    ado._conn.Close(); ado._conn.Dispose();
                }
            }
            DataSearch <RNDLogin> ds = new DataSearch <RNDLogin>
            {
                items = lstRNDLogin,
                total = (lstRNDLogin != null && lstRNDLogin.Count > 0) ? lstRNDLogin[0].total : 0
            };

            return(ds);
        }
예제 #9
0
        /// <summary>
        /// Retrieve Register user List details for Update
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult SaveRegisterUser(int id)
        {
            RNDLogin NUR = null;

            List <SelectListItem> UserPermissionLevel = null;

            try
            {
                var client = GetHttpClient();
                var task   = client.GetAsync(Api + "api/Register?UserId=" + id).ContinueWith((res) =>
                {
                    if (res.Result.IsSuccessStatusCode)
                    {
                        NUR = JsonConvert.DeserializeObject <RNDLogin>(res.Result.Content.ReadAsStringAsync().Result);
                        if (NUR != null)
                        {
                            UserPermissionLevel = NUR.UserPermissionLevel;
                        }
                    }
                });
                task.Wait();

                ViewBag.ddlPermissionLevel = UserPermissionLevel;

                /*
                 * UserTypes.Add(PermissionConstants.Admin);
                 * UserTypes.Add(PermissionConstants.SuperAdmin);
                 * UserTypes.Add(PermissionConstants.NormalUser);
                 * UserTypes.Add(PermissionConstants.None);
                 * UserTypes.Add(PermissionConstants.ReadOnly);
                 */
            }
            catch (Exception ex)
            {
                _logger.Error(ex);
            }
            return(View(NUR));
        }
예제 #10
0
 public ActionResult Index(RNDLogin model)
 {
     return(View(model));
 }
예제 #11
0
        /// <summary>
        /// Retrieve the Registered User details
        /// </summary>
        /// <param name="UserId"></param>
        /// <returns></returns>
        public HttpResponseMessage Get(int UserId)
        {
            _logger.Debug("Register Get Called");
            // SqlDataReader reader = null;
            RNDLogin NUR = null;

            try
            {
                CurrentUser user = ApiUser;
                NUR = new RNDLogin();
                AdoHelper ado = new AdoHelper();
                NUR.UserPermissionLevel = new List <SelectListItem>()
                {
                    GetInitialSelectItem()
                };
                if (UserId > 0)
                {
                    SqlParameter param1 = new SqlParameter("@UserId", UserId);
                    using (SqlDataReader reader = ado.ExecDataReaderProc("RNDRegisteredUser_ReadByID", "RND", new object[] { param1 }))
                    {
                        if (reader.HasRows)
                        {
                            if (reader.Read())
                            {
                                NUR.UserId          = Convert.ToInt32(reader["UserId"]);
                                NUR.UserName        = Convert.ToString(reader["UserName"]).Trim();
                                NUR.FirstName       = Convert.ToString(reader["FirstName"]).Trim();
                                NUR.LastName        = Convert.ToString(reader["LastName"]).Trim();
                                NUR.PermissionLevel = Convert.ToString(reader["PermissionLevel"]).Trim();
                            }
                        }
                        if (ado._conn != null && ado._conn.State == System.Data.ConnectionState.Open)
                        {
                            ado._conn.Close(); ado._conn.Dispose();
                        }
                    }
                }
                using (SqlDataReader reader = ado.ExecDataReaderProc("RNDUserPermissionLevel_READ", "RND", null))
                {
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            NUR.UserPermissionLevel.Add(new SelectListItem
                            {
                                Value    = Convert.ToString(reader["PermissionLevel"]),
                                Text     = Convert.ToString(reader["PermissionLevel"]),
                                Selected = (NUR.PermissionLevel == Convert.ToString(reader["PermissionLevel"])) ? true : false,
                            });
                        }
                    }
                    if (ado._conn != null && ado._conn.State == System.Data.ConnectionState.Open)
                    {
                        ado._conn.Close(); ado._conn.Dispose();
                    }
                }
                return(Serializer.ReturnContent(NUR, this.Configuration.Services.GetContentNegotiator(), this.Configuration.Formatters, this.Request));
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message);
                return(new HttpResponseMessage(HttpStatusCode.InternalServerError));
            }
        }
예제 #12
0
        /// <summary>
        /// Retrieve the registered user details
        /// </summary>
        /// <param name="login"></param>
        /// <returns></returns>
        public HttpResponseMessage Post(RNDLogin login)
        {
            //SqlDataReader reader = null;
            RNDLogin     dbUser = null;
            ApiViewModel VM     = null;

            try
            {
                VM = new ApiViewModel();
                if (login != null)
                {
                    AdoHelper    ado    = new AdoHelper();
                    SqlParameter param1 = new SqlParameter("@UserName", login.UserName);
                    using (SqlDataReader reader = ado.ExecDataReaderProc("RNDLogin_ReadByID", "RND", new object[] { param1 }))
                    {
                        if (reader.HasRows && reader.Read())
                        {
                            dbUser                 = new RNDLogin();
                            dbUser.UserId          = Convert.ToInt32(reader["UserId"]);
                            dbUser.FirstName       = Convert.ToString(reader["FirstName"]);
                            dbUser.LastName        = Convert.ToString(reader["LastName"]);
                            dbUser.UserType        = Convert.ToString(reader["UserType"]);
                            dbUser.PasswordHash    = (byte[])reader["PasswordHash"];
                            dbUser.PasswordSalt    = (byte[])reader["PasswordSalt"];
                            dbUser.PermissionLevel = Convert.ToString(reader["PermissionLevel"]);
                            dbUser.IssueDate       = (!string.IsNullOrEmpty(reader["IssueDate"].ToString())) ? Convert.ToDateTime(reader["IssueDate"]) : (DateTime?)null;
                            dbUser.CreatedBy       = Convert.ToInt32(reader["CreatedBy"]);
                            dbUser.CreatedOn       = Convert.ToDateTime(reader["CreatedOn"]);
                            dbUser.StatusCode      = Convert.ToString(reader["StatusCode"]);
                            byte[] strSalt          = dbUser.PasswordSalt;
                            string salt             = Convert.ToBase64String(strSalt);
                            byte[] dbPasswordHash   = dbUser.PasswordHash;
                            byte[] userPasswordHash = Encryptor.GenerateHash(login.Password, salt);
                            bool   chkPassword      = Encryptor.CompareByteArray(dbPasswordHash, userPasswordHash);
                            if (chkPassword)
                            {
                                string token = Guid.NewGuid().ToString("D") + Guid.NewGuid().ToString("D");
                                dbUser.UserName = login.UserName;
                                dbUser.Token    = token;
                                VM.Custom       = dbUser;

                                ado = new AdoHelper();
                                SqlParameter param3 = new SqlParameter("@UserId", dbUser.UserId);
                                SqlParameter param4 = new SqlParameter("@Token", token);
                                ado.ExecScalarProc("RNDSecurityTokens_Insert", "RND", new object[] { param3, param4 });
                            }
                            else
                            {
                                VM.Message = MessageConstants.InValidPassword;
                            }
                        }
                        else
                        {
                            VM.Message = MessageConstants.InvalidUser;
                        }

                        if (ado._conn != null && ado._conn.State == System.Data.ConnectionState.Open)
                        {
                            ado._conn.Close(); ado._conn.Dispose();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message);
                return(new HttpResponseMessage(HttpStatusCode.InternalServerError));
            }
            return(Serializer.ReturnContent(VM, this.Configuration.Services.GetContentNegotiator(), this.Configuration.Formatters, this.Request));
        }
예제 #13
0
        public ActionResult Index(RNDLogin model)
        {
            string msg = string.Empty;

            try
            {
                var client = GetHttpClient();
                var task   = client.PostAsJsonAsync(Api + "api/login", model).ContinueWith((res) =>
                {
                    if (res.Result.IsSuccessStatusCode)
                    {
                        ApiViewModel VM = JsonConvert.DeserializeObject <ApiViewModel>(res.Result.Content.ReadAsStringAsync().Result);
                        if (VM != null)
                        {
                            if (string.IsNullOrEmpty(VM.Message) && VM.Custom != null)
                            {
                                RNDLogin dbUser = JsonConvert.DeserializeObject <RNDLogin>(VM.Custom.ToString());
                                if (dbUser != null)
                                {
                                    CurrentUser currentUser = new CurrentUser
                                    {
                                        UserId          = dbUser.UserId,
                                        UserName        = dbUser.UserName,
                                        FullName        = dbUser.FirstName + " " + dbUser.LastName,
                                        PermissionLevel = dbUser.PermissionLevel,
                                        Token           = dbUser.Token,
                                        StatusCode      = dbUser.StatusCode
                                    };
                                    this.HttpContext.Session["CurrentUser"] = currentUser;
                                    if (model.IsRememberMe)
                                    {
                                        HttpCookie cookie = new HttpCookie("RNDLogin");
                                        cookie.Values.Add("UserName", currentUser.UserName);
                                        cookie.Expires = DateTime.Now.AddDays(15);
                                        Response.Cookies.Add(cookie);
                                    }
                                    else
                                    {
                                        Response.Cookies["RNDLogin"].Expires = DateTime.Now.AddDays(-1);
                                    }
                                }
                            }
                            if (!string.IsNullOrEmpty(VM.Message))
                            {
                                msg = VM.Message;
                            }
                        }
                    }
                });
                task.Wait();
                if (!string.IsNullOrEmpty(msg))
                {
                    TempData["msg"] = msg;
                    return(RedirectToAction("Index")); //View("Index", null, model);
                }
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message);
            }
            return(RedirectToAction("WorkSutdyList", "WorkStudy"));
        }
예제 #14
0
        public ActionResult CheckSecurityQuestion(string UserName, string UserAnswer)
        {
            string msg = string.Empty;

            try
            {
                var client = GetHttpClient();
                var task   = client.GetAsync(Api + "api/login?UserName="******"&UserAnswer=" + UserAnswer).ContinueWith((res) =>
                {
                    if (res.Result.IsSuccessStatusCode)
                    {
                        ApiViewModel VM = JsonConvert.DeserializeObject <ApiViewModel>(res.Result.Content.ReadAsStringAsync().Result);
                        if (VM != null)
                        {
                            if (string.IsNullOrEmpty(VM.Message) && VM.Custom != null)
                            {
                                RNDLogin dbUser = JsonConvert.DeserializeObject <RNDLogin>(VM.Custom.ToString());
                                if (dbUser != null)
                                {
                                    CurrentUser currentUser = new CurrentUser
                                    {
                                        UserId          = dbUser.UserId,
                                        UserName        = dbUser.UserName,
                                        FullName        = dbUser.FirstName + " " + dbUser.LastName,
                                        PermissionLevel = dbUser.PermissionLevel,
                                        Token           = dbUser.Token,
                                        StatusCode      = "DR"
                                    };
                                    this.HttpContext.Session["CurrentUser"] = currentUser;
                                    Response.Cookies["RNDLogin"].Expires    = DateTime.Now.AddDays(-1);
                                }
                                else
                                {
                                    msg = "Invalid user";
                                }
                            }
                            if (!string.IsNullOrEmpty(VM.Message))
                            {
                                msg = VM.Message;
                            }
                        }
                    }
                });
                task.Wait();
                if (!string.IsNullOrEmpty(msg))
                {
                    return(Json(new { IsSuccess = false, Message = msg }, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(JavaScript("window.location = '/WorkStudy/WorkSutdyList'"));
                    //   return RedirectToAction("WorkSutdyList", "WorkStudy");
                    //  return Json(new { IsSuccess = true, Url = "/Admin/SecuityConfig" }, JsonRequestBehavior.AllowGet);
                }
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message);
                throw;
            }
        }