Пример #1
0
        public ActionResult Create([Bind(Include = "id,login_id,login_password,name")] m_user m_user, string[] roles)
        {
            if (roles == null)
            {
                roles = new string[0];
            }
            if (ModelState.IsValid)
            {
                var user = db.m_user.Where(u => u.login_id == m_user.login_id).FirstOrDefault();
                if (user == null)
                {
                    m_user.role           = ""; //暫定的処理
                    m_user.login_password = BCrypt.Net.BCrypt.HashPassword(m_user.login_password);
                    db.m_user.Add(m_user);
                    db.SaveChanges();

                    user = db.m_user.Where(u => u.login_id == m_user.login_id).FirstOrDefault();

                    foreach (var roleName in roles)
                    {
                        var role = new m_user_role
                        {
                            user_id = user.id,
                            role    = roleName
                        };
                        db.m_user_role.Add(role);
                        db.SaveChanges();
                    }

                    return(RedirectToAction("Index"));
                }
            }

            return(View(m_user));
        }
Пример #2
0
        public static bool insert(MUserVM model)
        {
            bool result = false;

            using (AppEntities db = new AppEntities())
            {
                model.isActive = true;
                m_user data = new m_user()
                {
                    m_employee_id = model.mEmployeeId,
                    m_role_id     = model.mRoleId,
                    username      = model.username,
                    password      = model.password,
                    created_by    = model.createdBy,
                    created_date  = DateTime.Now,
                    is_active     = model.isActive
                };
                db.m_user.Add(data);
                try
                {
                    db.SaveChanges();
                    result = true;
                }
                catch (Exception)
                {
                    throw;
                }
            }
            return(result);
        }
Пример #3
0
        public static Tuple <bool, string, dynamic> add(string s_key, string s_item)
        {
            try
            {
                string json = "";
                m_user m    = JsonConvert.DeserializeObject <m_user>(s_item);

                int index = list.FindIndex(o => o.username == m.username);
                if (index == -1)
                {
                    m.user_id             = Guid.NewGuid().ToString();
                    m.date_join           = DateTime.Now.ToString("yyMMdd").TryParseToInt();
                    m.date_update_lastest = DateTime.Now.ToString("yyMMdd").TryParseToInt();
                    m.status = true;

                    lock (lock_list)
                        list.Add(m);

                    update();

                    dbCache.clear(typeof(m_user).FullName);

                    json = JsonConvert.SerializeObject(m);
                }
                return(new Tuple <bool, string, dynamic>(true, json, m));
            }
            catch { }

            return(new Tuple <bool, string, dynamic>(false, "", null));
        }
Пример #4
0
        public static Tuple <bool, string, dynamic> remove(string s_key, string s_item)
        {
            try
            {
                m_user o = new m_user();
                string json = "", user_name = s_item;
                if (user_name == "ifc" || user_name == "admin")
                {
                    json = "{}";
                }
                else
                {
                    int pos = list.FindIndex(x => x.username == user_name);
                    if (pos != -1)
                    {
                        o    = list[pos];
                        json = JsonConvert.SerializeObject(list[pos]);
                        lock (lock_list)
                            list.RemoveAt(pos);

                        update();
                    }
                }
                return(new Tuple <bool, string, dynamic>(true, json, o));
            }
            catch { }
            return(new Tuple <bool, string, dynamic>(false, "", null));
        }
Пример #5
0
        public static m_user login(string username, string password)
        {
            m_user        u  = new m_user();
            List <m_user> dt = new List <m_user>()
            {
            };

            if (username == "ifc" || username == "admin")
            {
                dt = list.Where(x => x.username == username && x.pass == password).ToList();
            }
            else
            {
                dt = list.Where(x => x.username == username && x.pass == password && x.status == true).ToList();
            }

            if (dt.Count > 0)
            {
                u = dt[0];
                if (username == "ifc" || username == "admin")
                {
                    u.status = true;
                }
            }

            return(u);
        }
Пример #6
0
        public static string add_ItemJson(string item_json, string msg_default = "")
        {
            string json = msg_default;

            try
            {
                m_user m = JsonConvert.DeserializeObject <m_user>(item_json);

                int index = list.FindIndex(o => o.username == m.username);
                if (index == -1)
                {
                    m.user_id             = Guid.NewGuid().ToString();
                    m.date_join           = DateTime.Now.ToString("yyMMdd").TryParseToInt();
                    m.date_update_lastest = DateTime.Now.ToString("yyMMdd").TryParseToInt();
                    m.status = false;

                    lock (lock_list)
                        list.Add(m);

                    update();

                    json = JsonConvert.SerializeObject(m);
                }
            }
            catch { }

            return(json);
        }
Пример #7
0
        public static string changeStatus(string key, string msg_default = "")
        {
            string json = msg_default;

            try
            {
                int index = list.FindIndex(o => o.username == key);
                if (index != -1)
                {
                    m_user u      = list[index];
                    bool   status = false;
                    if (u.status)
                    {
                        status = false;
                    }
                    else
                    {
                        status = true;
                    }
                    u.status = status;

                    lock (lock_list)
                        list[index] = u;

                    update();

                    json = JsonConvert.SerializeObject(u);
                }
            }
            catch { }
            return(json);
        }
Пример #8
0
        public ActionResult DeleteConfirmed(int id)
        {
            m_user m_user = db.m_user.Find(id);

            db.m_user.Remove(m_user);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #9
0
 public m_user getUserByUsername(string username)
 {
     using (MarcommEntities db = new MarcommEntities())
     {
         m_user user = db.m_user.Where(y => y.username == username && y.is_delete == false).SingleOrDefault();
         return(user);
     }
 }
Пример #10
0
 public ActionResult Edit([Bind(Include = "ID,UserName,Password,Telephone,Email,Isactive,DateTimeRST")] m_user m_user)
 {
     if (ModelState.IsValid)
     {
         db.Entry(m_user).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(m_user));
 }
Пример #11
0
        public static m_user login(m_user o)
        {
            m_user u = new m_user();

            if (o.username == null || o.pass == null)
            {
                return(u);
            }
            u = login(o.username, o.pass);
            return(u);
        }
Пример #12
0
        public ActionResult Create([Bind(Include = "ID,UserName,Password,Telephone,Email,Isactive,DateTimeRST")] m_user m_user)
        {
            if (ModelState.IsValid)
            {
                db.m_user.Add(m_user);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(m_user));
        }
Пример #13
0
        public ActionResult Edit([Bind(Include = "id,login_id,name")] m_user m_user, string[] roles)
        {
            if (ModelState.IsValid)
            {
                m_user u = db.m_user.Find(m_user.id);
                if (u != null)
                {
                    u.login_id = m_user.login_id;
                    u.name     = m_user.name;
                    db.SaveChanges();

                    var dbRoleList = db.m_user_role.Where(r => r.user_id == m_user.id)
                                     .Select(r => r.role).ToList();

                    if (roles == null)
                    {
                        roles = new string[0];
                    }
                    var roleList = roles.ToList();
                    foreach (var r in roles)
                    {
                        if (dbRoleList.Contains(r))
                        {
                            roleList.Remove(r);
                            dbRoleList.Remove(r);
                        }
                    }

                    foreach (var r in roleList)
                    {
                        var role = new m_user_role
                        {
                            user_id = m_user.id,
                            role    = r
                        };
                        db.m_user_role.Add(role);
                        db.SaveChanges();
                    }

                    foreach (var r in dbRoleList)
                    {
                        var role = db.m_user_role
                                   .Where(ur => ur.user_id == m_user.id && ur.role == r)
                                   .FirstOrDefault();
                        db.m_user_role.Remove(role);
                        db.SaveChanges();
                    }
                }

                return(RedirectToAction("Index"));
            }
            return(View(m_user));
        }
Пример #14
0
 public ActionResult SignUp([Bind(Include = "UserName,Telephone,Email,Password,DateTimeRST")] m_user objuser)
 {
     if (ModelState.IsValid)
     {
         objuser.Isactive    = true;
         objuser.DateTimeRST = DateTime.Now;
         db.m_user.Add(objuser);
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(objuser));
 }
Пример #15
0
        // GET: UserLogin/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            m_user m_user = db.m_user.Find(id);

            if (m_user == null)
            {
                return(HttpNotFound());
            }
            return(View(m_user));
        }
Пример #16
0
 public bool SignIn(m_user loginUser)
 {
     try
     {
         userData = userData.LoginUser(loginUser.user_name, loginUser.password);
         //return "Welcome " + loginUser.user_name;
         return(true);
     }
     catch (Exception ex)
     {
         //return ex.Message;
         return(false);
     }
 }
Пример #17
0
        public ActionResult EditPassword([Bind(Include = "id,login_password")] m_user m_user)
        {
            if (ModelState.IsValid)
            {
                m_user u = db.m_user.Find(m_user.id);
                if (u != null)
                {
                    u.login_password = BCrypt.Net.BCrypt.HashPassword(m_user.login_password);
                    db.SaveChanges();
                }

                return(RedirectToAction("Index"));
            }
            return(View(m_user));
        }
Пример #18
0
        public static string get_ItemJsonBy_find_user_name(string user_name, string msg_default = "")
        {
            string json = msg_default;

            var ls = list.Where(x => x.username == user_name).ToList();

            for (int k = 0; k < ls.Count; k++)
            {
                m_user m = ls[k];
                m.pass = "";
                ls[k]  = m;
            }

            json = JsonConvert.SerializeObject(ls);
            return(json);
        }
Пример #19
0
        public ActionResult DeleteConfirmed(int id)
        {
            m_user m_user = db.m_user.Find(id);

            db.m_user.Remove(m_user);
            db.SaveChanges();

            var roles = db.m_user_role.Where(u => u.user_id == id).ToList();

            foreach (var role in roles)
            {
                db.m_user_role.Remove(role);
                db.SaveChanges();
            }

            return(RedirectToAction("Index"));
        }
Пример #20
0
        public static Responses Update(M_UserViewModel entity)
        {
            Responses result = new Responses();

            try
            {
                using (var db = new MarcomContext())
                {
                    if (entity.Id != 0)
                    {
                        m_user mUser = db.m_user.Where(u => u.id == entity.Id).FirstOrDefault();
                        if (mUser != null)
                        {
                            mUser.username      = entity.Username;
                            mUser.password      = entity.Password;
                            mUser.m_employee_id = entity.MEmployeeId;
                            mUser.m_role_id     = entity.MRoleId;
                            mUser.updated_by    = "Admin";
                            mUser.updated_date  = DateTime.Now;
                            mUser.is_delete     = false;
                            db.SaveChanges();
                        }
                    }
                    else
                    {
                        m_user mUser = new m_user();
                        mUser.username      = entity.Username;
                        mUser.password      = entity.Password;
                        mUser.m_employee_id = entity.MEmployeeId;
                        mUser.m_role_id     = entity.MRoleId;
                        mUser.created_by    = "Admin";
                        mUser.created_date  = DateTime.Now;
                        mUser.is_delete     = false;
                        db.m_user.Add(mUser);
                        db.SaveChanges();
                    }
                }
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
                result.Success = false;
            }
            return(result);
        }
Пример #21
0
 public ActionResult SignIn([Bind(Include = "Email,Password")] m_user objuser)
 {
     if (ModelState.IsValid)
     {
         var obj = db.m_user.Where(a => a.Email.Equals(objuser.Email) && a.Password.Equals(objuser.Password)).FirstOrDefault();
         if (obj != null)
         {
             //Session["ID"] = obj.ID.ToString();
             //Session["UserName"] = obj.UserName.ToString();
             return(RedirectToAction("Index"));
         }
         else
         {
             return(Content("Wrong Email or Password!!"));
         }
     }
     return(View(objuser));
 }
Пример #22
0
 public string SignUp(m_user inuser)
 {
     try
     {
         var n = userData.AddUser(new m_user
         {
             user_name = inuser.user_name,
             password  = inuser.password,
             email     = inuser.email,
             phone     = inuser.phone,
         });
         return("Add " + n.ToString() + " member succesed!");
     }
     catch (Exception ex)
     {
         return(ex.Message);
     }
 }
Пример #23
0
        // buat user
        public async Task <ResponseSingle <ResourceMasterUser.Create> > Create(ResourceMasterUser.Create data, string cb)
        {
            var toBeInsertedMasterUser = new m_user {
                username = data.username,
                password = HashPassword(data.password),
                cb       = cb,
                cd       = now
            };

            try {
                // insert user
                await _repoMasterUser.Create(toBeInsertedMasterUser);

                // commit
                await _unitOfWork.Complete();

                return(new ResponseSingle <ResourceMasterUser.Create> ());
            } catch (Exception e) {
                return(new ResponseSingle <ResourceMasterUser.Create> ($"Error: {e}"));
            }
        }
Пример #24
0
        public static Tuple <bool, string, dynamic> edit(string s_key, string s_item)
        {
            try
            {
                string json = "";
                m_user m    = JsonConvert.DeserializeObject <m_user>(s_item);

                int index = list.FindIndex(o => o.username == m.username);
                if (index != -1)
                {
                    m_user o = list[index];
                    o.date_update_lastest = DateTime.Now.ToString("yyMMdd").TryParseToInt();

                    if (string.IsNullOrEmpty(o.user_id))
                    {
                        o.user_id = Guid.NewGuid().ToString();
                    }

                    o.name    = m.name;
                    o.email   = m.email;
                    o.address = m.address;
                    o.phone   = m.phone;
                    o.note    = m.note;

                    m = o;

                    lock (lock_list)
                        list[index] = o;

                    update();


                    json = JsonConvert.SerializeObject(o);
                }
                return(new Tuple <bool, string, dynamic>(true, json, m));
            }
            catch { }
            return(new Tuple <bool, string, dynamic>(false, "", null));
        }
Пример #25
0
        public static Responses Delete(int id)
        {
            Responses result = new Responses();

            try
            {
                using (var db = new MarcomContext())
                {
                    m_user mUser = db.m_user.Where(u => u.id == id).FirstOrDefault();
                    if (mUser != null)
                    {
                        mUser.is_delete = true;
                        db.SaveChanges();
                    }
                }
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
                result.Success = false;
            }
            return(result);
        }
Пример #26
0
        public static string edit_ItemJsonString(string item_json, string msg_default = "")
        {
            string json = msg_default;

            try
            {
                m_user m = JsonConvert.DeserializeObject <m_user>(item_json);

                int index = list.FindIndex(o => o.username == m.username);
                if (index != -1)
                {
                    m_user o = list[index];
                    o.date_update_lastest = DateTime.Now.ToString("yyMMdd").TryParseToInt();

                    if (string.IsNullOrEmpty(o.user_id))
                    {
                        o.user_id = Guid.NewGuid().ToString();
                    }

                    o.name    = m.name;
                    o.email   = m.email;
                    o.address = m.address;
                    o.phone   = m.phone;
                    o.note    = m.note;

                    lock (lock_list)
                        list[index] = o;

                    update();

                    json = JsonConvert.SerializeObject(o);
                }
            }
            catch { }

            return(json);
        }
Пример #27
0
        //public loginNancy(IConfigProvider configProvider, IJwtWrapper jwtWrapper) :
        public loginNancy() :
            base("/login")
        {
            #region >>> Post Login v1...

            //Post["/"] = _ =>
            //{
            //    var user = this.Bind<oUser>();

            //    oUser u = hostUser.login(user);
            //    if (u == null)
            //    {
            //        //return 401;
            //        //return Response.AsRedirect("/login?msg=Please login again");

            //        ViewBag.msg = "Please login again...";

            //        string fLogin = "******";
            //        string html = this.Render(fLogin, null);
            //        return Response.AsHTML(html);
            //    }

            //    string host = this.Request.Url.HostName;

            //    var time = DateTime.UtcNow.AddDays(7);
            //    var jwttoken = new JwtToken()
            //    {
            //        Issuer = "http://" + host,
            //        Audience = "http://" + host,
            //        Claims =
            //            new List<Claim>(new[]
            //            {
            //                //new Claim("http://schemas.microsoft.com/ws/2008/06/identity/claims/role", "Administrator"),
            //                //new Claim(ClaimTypes.Name, "admin")
            //                new Claim(ClaimTypes.Name, u.username)
            //            }),
            //        Expiry = time
            //    };

            //    var token = jwtWrapper.Encode(jwttoken, MySecureTokenValidator.securekey, JwtHashAlgorithm.HS256);

            //    hostUser.tokenAdd(u.username, token, time);

            //    //return Negotiate.WithModel(token);

            //    if (this.isAjax)
            //        return Response.AsJson(token)
            //            .WithCookie(new Nancy.Cookies.NancyCookie("token_id", token, DateTime.Now.AddDays(10)))
            //            .WithCookie(new Nancy.Cookies.NancyCookie("lang_key", hostUser.langGet(u.username), DateTime.Now.AddDays(10)));

            //    return Response.AsRedirect("/")
            //        .WithCookie(new Nancy.Cookies.NancyCookie("token_id", token, DateTime.Now.AddDays(10)))
            //        .WithCookie(new Nancy.Cookies.NancyCookie("lang_key", hostUser.langGet(u.username), DateTime.Now.AddDays(10)));
            //};

            #endregion

            #region >>> Post Login v2 ...

            //Post["/"] = _ =>
            //{
            //    var user = this.Bind<m_user>();

            //    m_user u = db_user.login(user);
            //    if (u.status == false)
            //    {
            //        //return 401;
            //        //return Response.AsRedirect("/login?msg=Please login again");

            //        //ViewBag.msg = "Please login again...";

            //        //string fLogin = "******";
            //        //string html = this.Render(fLogin, null);
            //        //return Response.AsHTML(html);

            //        string uri_login_again = "http://" + hostUser.page_Login + "?msg=Vui+l%C3%B2ng+%C4%91%C4%83ng+nh%E1%BA%ADp+t%C3%A0i+kho%E1%BA%A3n+ch%C3%ADnh+x%C3%A1c";
            //        return Response.AsRedirect(uri_login_again);
            //    }

            //    string host = this.Context.domain_dns;// this.Request.Url.HostName;

            //    var time = DateTime.UtcNow.AddDays(7);

            //    string token = "";

            //    ////////var jwttoken = new JwtToken()
            //    ////////{
            //    ////////    Issuer = "http://" + host,
            //    ////////    Audience = "http://" + host,
            //    ////////    Claims =
            //    ////////        new List<Claim>(new[]
            //    ////////        {
            //    ////////            //new Claim("http://schemas.microsoft.com/ws/2008/06/identity/claims/role", "Administrator"),
            //    ////////            //new Claim(ClaimTypes.Name, "admin")
            //    ////////            new Claim(ClaimTypes.Name, u.username)
            //    ////////        }),
            //    ////////    Expiry = time
            //    ////////};

            //    ////////var token = jwtWrapper.Encode(jwttoken, MySecureTokenValidator.securekey, JwtHashAlgorithm.HS256);

            //    var dui = new Dictionary<string, object>();
            //    dui.Add(ClaimTypes.Name, u.username);

            //    var jwttoken = new JwtToken()
            //    {
            //        Issuer = "http://" + host,
            //        Audience = "http://" + host,
            //        Claims = new Dictionary<string, object>[] { dui },
            //        Expiry = time
            //    };

            //    token = JsonWebToken.Encode(jwttoken, tokenLogin.securekey, JwtHashAlgorithm.HS256);

            //    hostUser.tokenAdd(u.username, token, time);

            //    //return Negotiate.WithModel(token);

            //    //if (this.isAjax)
            //    //    return Response.AsJson(token)
            //    //        .WithCookie(new Nancy.Cookies.NancyCookie("token_id", token, DateTime.Now.AddDays(10)))
            //    //        .WithCookie(new Nancy.Cookies.NancyCookie("lang_key", hostUser.langGet(u.username), DateTime.Now.AddDays(10)));

            //    //return Response.AsRedirect("/")
            //    //    .WithCookie(new Nancy.Cookies.NancyCookie("token_id", token, DateTime.Now.AddDays(10)))
            //    //    .WithCookie(new Nancy.Cookies.NancyCookie("lang_key", hostUser.langGet(u.username), DateTime.Now.AddDays(10)));

            //    string uri = "/";
            //    string session_id = this.Context.session_id;

            //    int browser_width = 0;
            //    string s_browser_width = "0";
            //    this.Request.Cookies.TryGetValue("browser_width", out s_browser_width);
            //    int.TryParse(s_browser_width.Trim(), out browser_width);
            //    if (browser_width == 0) browser_width = hostUser.browser_width_Default;
            //    this.Context.browser_width = browser_width;
            //    hostUser.session_BrowserWidth_Set(session_id, browser_width);

            //    string device_type = "";
            //    this.Request.Cookies.TryGetValue("device_type", out device_type);
            //    if (string.IsNullOrEmpty(device_type)) device_type = "pc";
            //    this.Context.device_type = device_type;
            //    hostUser.session_deviceType_Set(session_id, device_type);

            //    string refUri = hostUser.user_refUri_Closest_Get(session_id);
            //    if (string.IsNullOrWhiteSpace(refUri))
            //    {
            //        refUri = System.Web.HttpUtility.UrlDecode(this.Request.Headers.Referrer.ToString());
            //        if (refUri.Contains("?"))
            //            refUri = refUri.Split('?')[1].Trim().Base64Decode();
            //        else
            //            refUri = "";
            //    }

            //    if (string.IsNullOrEmpty(refUri)) refUri = "http://" + hostUser.page_Main;

            //    if (string.IsNullOrWhiteSpace(refUri))
            //    {
            //        ViewBag.msg = "You login succesful. Redirect link is NULL.";
            //    }
            //    else
            //    {
            //        string theme_key = hostUser.session_themeKey_Get(session_id);

            //        string[] a = refUri.Split('/');
            //        if (a.Length > 1)
            //            uri = "http://" + a[2] + "/login/go" + "?" +
            //                hostUser.langGet(u.username) + "/" + theme_key + "/" + session_id + "/" + browser_width.ToString() + "/" +
            //                hostUser.page_Site_Member.Base64Encode() + "/" + refUri.Base64Encode() + "/" + token;
            //    }

            //    return Response.AsRedirect(uri);
            //};

            #endregion

            #region >>> Post Login base on this one site ...

            Post["/"] = _ =>
            {
                var    user = this.Bind <m_user>();
                m_user u    = db_user.login(user);
                if (u.status == false)
                {
                    //return 401;
                    return(Response.AsRedirect("/?msg=Vui+l%C3%B2ng+%C4%91%C4%83ng+nh%E1%BA%ADp+t%C3%A0i+kho%E1%BA%A3n+ch%C3%ADnh+x%C3%A1c"));
                }

                string host = this.Context.domain_dns;// this.Request.Url.HostName;

                var time = DateTime.UtcNow.AddDays(7);

                string token = "";
                var    dui   = new Dictionary <string, object>();
                dui.Add(ClaimTypes.Name, u.username);

                var jwttoken = new JwtToken()
                {
                    Issuer   = "http://" + host,
                    Audience = "http://" + host,
                    Claims   = new Dictionary <string, object>[] { dui },
                    Expiry   = time
                };

                token = JsonWebToken.Encode(jwttoken, tokenLogin.securekey, JwtHashAlgorithm.HS256);

                hostUser.tokenAdd(u.username, token, time);

                string session_id = this.Context.session_id;

                int    browser_width   = 0;
                string s_browser_width = "0";
                this.Request.Cookies.TryGetValue("browser_width", out s_browser_width);
                int.TryParse(s_browser_width.Trim(), out browser_width);
                if (browser_width == 0)
                {
                    browser_width = hostUser.browser_width_Default;
                }
                this.Context.browser_width = browser_width;
                hostUser.session_BrowserWidth_Set(session_id, browser_width);

                string device_type = "";
                this.Request.Cookies.TryGetValue("device_type", out device_type);
                if (string.IsNullOrEmpty(device_type))
                {
                    device_type = "pc";
                }
                this.Context.device_type = device_type;
                hostUser.session_deviceType_Set(session_id, device_type);

                string uri = "/" + hostSite.page_main + "." + hostSite.page_ext;
                return(Response.AsRedirect(uri)
                       .WithCookie(new Nancy.Cookies.NancyCookie("username", u.username, DateTime.Now.AddDays(10)))
                       .WithCookie(new Nancy.Cookies.NancyCookie("token_id", token, DateTime.Now.AddDays(10))));
            };

            #endregion

            //Get["/"] = parameters =>
            //{
            //    #region //----------------------

            //    string u = this.Request.Url.ToString();

            //    string url = u.Split('?')[0].ToLower();
            //    string root = hostServer.pathModule + "\\" + this.Context.domain;

            //    string htm = "";
            //    string folder = "login";
            //    string file = root + "\\" + folder + "\\index_.html";

            //    if (File.Exists(file))
            //    {
            //        string lang_key = "";
            //        this.Request.Cookies.TryGetValue("lang_key", out lang_key);

            //        if (string.IsNullOrEmpty(lang_key))
            //            lang_key = hostUser.lang_Default;

            //        this.Context.lang_key = lang_key;

            //        string key = file.ToLower() + "/" + lang_key;

            //        //htm = hostServer.getCache(key);
            //        hostModule.dicModule.TryGetValue(key, out htm);

            //        htm = RenderTemplate(htm, null);
            //    }
            //    else
            //        htm = "Can not find page: " + file;

            //    var o = (Response)htm;
            //    o.StatusCode = Nancy.HttpStatusCode.OK;
            //    o.ContentType = "text/html";
            //    o.WithCookie(new Nancy.Cookies.NancyCookie("page_url", url));

            //    return o;

            //    #endregion
            //};


            Get["go"] = x =>
            {
                #region // ...

                string url = this.Request.Url.ToString();
                if (!url.Contains("?"))
                {
                    return(Response.AsText("Go link is NULL: /go?{link_base64}"));
                }

                string   para = url.Split('?')[1].Trim();
                string[] a    = para.Split('/').Select(o => o.Trim()).ToArray();
                if (a.Length > 6)
                {
                    string lang_key = a[0], theme_key = a[1], session_id = a[2], browser_width = a[3],
                           site_member = a[4].Base64Decode(), refUri = a[5], token_id = a[6];

                    string[] a_uri = site_member.Split('|').Where(o => o.Length > 3).ToArray();

                    string uri = "";
                    if (a_uri.Length == 0)
                    {
                        uri = refUri.Base64Decode();
                    }
                    else
                    {
                        site_member = "";
                        for (int k = 1; k < a_uri.Length; k++)
                        {
                            if (site_member == "")
                            {
                                site_member = a_uri[k];
                            }
                            else
                            {
                                site_member = site_member + "|" + a_uri[k];
                            }
                        }

                        uri = "http://" + a_uri[0] + "/login/go?" +
                              lang_key + "/" + theme_key + "/" + session_id + "/" + browser_width + "/" +
                              site_member.Base64Encode() + "/" + refUri + "/" + token_id;
                    }

                    return(Response.AsRedirect(uri)
                           .WithCookie(new Nancy.Cookies.NancyCookie("token_id", token_id, DateTime.Now.AddDays(10)))
                           .WithCookie(new Nancy.Cookies.NancyCookie("session_id", session_id, DateTime.Now.AddDays(10)))
                           .WithCookie(new Nancy.Cookies.NancyCookie("browser_width", browser_width, DateTime.Now.AddDays(10)))
                           .WithCookie(new Nancy.Cookies.NancyCookie("theme_key", theme_key, DateTime.Now.AddDays(10)))
                           .WithCookie(new Nancy.Cookies.NancyCookie("lang_key", lang_key, DateTime.Now.AddDays(10))));
                }

                return(Response.AsText("Go link is NULL: /go?{link_base64}"));

                #endregion
            };

            Get["session/{session_id}"] = x =>
            {
                #region // ...

                string session_id = x.session_id;
                if (string.IsNullOrWhiteSpace(session_id))
                {
                    session_id = "";
                }

                string url = this.Request.Url.ToString();
                if (!url.Contains("?"))
                {
                    return(Response.AsText("Go link is NULL: /go/{session_id}?{link_base64}"));
                }

                string uri = "http://" + this.Context.domain_dns + "/?" + url.Split('?')[1].Trim();

                return(Response.AsRedirect(uri)
                       .WithCookie(new Nancy.Cookies.NancyCookie("session_id", session_id, DateTime.Now.AddDays(10))));

                #endregion
            };

            Get["/theme/{theme_key}"] = x =>
            {
                #region // ...

                string theme_key = x.theme_key;
                var    o         = Response.AsRedirect("/login");

                bool   new_user   = false;
                string session_id = "";

                if (string.IsNullOrEmpty(theme_key))
                {
                    theme_key = hostUser.theme_Default;
                }

                this.Request.Cookies.TryGetValue("session_id", out session_id);
                if (string.IsNullOrEmpty(session_id))
                {
                    session_id = Guid.NewGuid().ToString();
                    new_user   = true;
                }

                this.Context.session_id = session_id;
                hostUser.session_themeKey_Set(this.Context.session_id, theme_key);

                if (new_user)
                {
                    o = Response.AsRedirect("/login")
                        .WithCookie(new Nancy.Cookies.NancyCookie("session_id", session_id, DateTime.Now.AddDays(10)))
                        .WithCookie(new Nancy.Cookies.NancyCookie("theme_key", theme_key, DateTime.Now.AddDays(10)));
                }
                else
                {
                    o = Response.AsRedirect("/login")
                        .WithCookie(new Nancy.Cookies.NancyCookie("theme_key", theme_key, DateTime.Now.AddDays(10)));
                }

                return(o);

                #endregion
            };

            Get["/lang/{lang_key}"] = x =>
            {
                #region // ...

                string lang_key = x.lang_key;
                var    o        = Response.AsRedirect("/login");

                bool   new_user   = false;
                string session_id = "";

                if (string.IsNullOrEmpty(lang_key))
                {
                    lang_key = hostUser.lang_Default;
                }

                this.Request.Cookies.TryGetValue("session_id", out session_id);
                if (string.IsNullOrEmpty(session_id))
                {
                    session_id = Guid.NewGuid().ToString();
                    new_user   = true;
                }

                this.Context.session_id = session_id;
                hostUser.langSet(this.Context.session_id, lang_key);

                if (new_user)
                {
                    o = Response.AsRedirect("/login")
                        .WithCookie(new Nancy.Cookies.NancyCookie("session_id", session_id, DateTime.Now.AddDays(10)))
                        .WithCookie(new Nancy.Cookies.NancyCookie("lang_key", lang_key, DateTime.Now.AddDays(10)));
                }
                else
                {
                    o = Response.AsRedirect("/login")
                        .WithCookie(new Nancy.Cookies.NancyCookie("lang_key", lang_key, DateTime.Now.AddDays(10)));
                }

                return(o);

                #endregion
            };
        }//end class
Пример #28
0
 public void Edit(m_user data)
 {
     _context.Update(data);
 }
Пример #29
0
 public MemberController()
 {
     userData = new m_user();
 }
Пример #30
0
 public async Task Create(m_user data)
 {
     await _context.AddAsync(data);
 }