Пример #1
0
 private void menuSystemLogin_Click(object sender, EventArgs e)
 {
     CurrentLoginUser.getInctance().delete();
     Process.Start(@"MainProgram.exe");
     m_isExitQuestion = false;
     Application.Exit();
 }
Пример #2
0
        // GET: First
        /// <summary>
        /// 在此右键添加视图,会在View下自动生成视图文件
        /// </summary>
        /// <returns></returns>
        public ActionResult Index(int id = 3)
        {
            //base.HttpContext.Session
            //System.Web.Mvc.WebViewPage
            CurrentLoginUser currentUser = this._UserList.FirstOrDefault(u => u.Id == id)
                                           ?? this._UserList[0];

            base.ViewData["CurrentUserViewData"] = this._UserList[0]; //ViewData
            base.ViewBag.CurrentUserViewBag      = this._UserList[1]; //ViewBag

            base.ViewData["TestProp"] = "cx";
            base.ViewBag.TestProp     = "Tenk";
            base.TempData["TestProp"] = "Spider";//独立存储

            base.TempData["CurrentUserTempData"] = currentUser;

            if (id == 1 || id == 2 || id == 3)
            {
                return(View(this._UserList[2]));
            }
            else if (id < 10)
            {
                return(View("~/Views/First/Index1.cshtml"));
            }
            else
            {
                return(base.RedirectToAction("TempDataShow"));
            }
        }
Пример #3
0
        private void FormMain_Load(object sender, EventArgs e)
        {
            //检测系统是否已经注册为正版
            if (!DbPublic.getInctance().isGenuineSoftware())
            {
                this.Text = this.Text + "(试用版)";
            }
            else
            {
                // 如果已注册为正版,检测当初注册时硬盘序列号和本次启动机器硬盘序列号是否相同,如果相同则视为正常,否则视同一序列号多人使用
                if (DbPublic.getInctance().getRegisterSoftwareKey() != SettlmentWay.getInctance().getSoftwareKey())
                {
                    MessageBoxExtend.messageWarning("同一软件序列号涉嫌多单位使用,程序将立即退出。\n如需继续使用该系统,请联系软件供应商。");
                    CurrentLoginUser.getInctance().delete();
                    Process.GetCurrentProcess().Kill();
                }
            }

            // 当系统未被初始化时,单据菜单、序时簿菜单不能显示
            this.menuBill.Visible = InitSubSystemSign.getInctance().isFinancialSystemInit() &&
                                    InitSubSystemSign.getInctance().isBusinessSystemInit();
            this.menuSquence.Visible = InitSubSystemSign.getInctance().isFinancialSystemInit() &&
                                       InitSubSystemSign.getInctance().isBusinessSystemInit();

            // 左侧功能按钮初始化
            LoadFunctionZone();
            this.WindowState = FormWindowState.Maximized;

            // 更新状态栏信息
            string statusBarText = DbPublic.getInctance().getCurrentDateStage();

            statusBarText += "                              ";
            statusBarText += "用户:" + DbPublic.getInctance().getCurrentLoginUserName();
            this.toolStripStatusLabel.Text = statusBarText;
        }
Пример #4
0
        /// <summary>
        /// 用户注销
        /// </summary>
        /// <param name="context"></param>
        public static void UserLogout(this HttpContextBase context)
        {
            #region Cookie

            HttpCookie myCookie = context.Request.Cookies["CurrentUser"];
            if (myCookie != null)
            {
                myCookie.Expires = DateTime.Now.AddMinutes(-1);//退出时设置Cookie过过期
                context.Response.Cookies.Add(myCookie);
            }

            #endregion Cookie

            #region Session
            var sessionUser = context.Session["CurrentUser"];
            if (sessionUser != null && sessionUser is CurrentLoginUser)
            {
                CurrentLoginUser currentUser = (CurrentLoginUser)context.Session["CurrentUser"];
                logger.Debug(string.Format("用户id={0} Name={1}退出系统", currentUser.Id, currentUser.Name));
            }
            context.Session["CurrentUser"] = null; //表示将制定的键的值清空,并释放掉,
            context.Session.Remove("CurrentUser");
            context.Session.Clear();               //表示将会话中所有的session的键值都清空,但是session还是依然存在,
            context.Session.RemoveAll();           //
            context.Session.Abandon();             //就是把当前Session对象删除了,下一次就是新的Session了
            #endregion Session
        }
Пример #5
0
        private string GetLoginCustomer()
        {
            var userID = User.FindFirstValue(ClaimTypes.NameIdentifier);
            CurrentLoginUser currentLoginUser = new CurrentLoginUser();

            currentLoginUser.CurrentUserID = userID;

            return(userID);
        }
Пример #6
0
 private void menuSystemExit_Click(object sender, EventArgs e)
 {
     if (MessageBoxExtend.messageQuestion("确定退出系统?"))
     {
         // 更新BASE_SYSTEM_CURRENT_LOGIN_USER表
         CurrentLoginUser.getInctance().delete();
         m_isExitQuestion = false;
         Application.Exit();
     }
 }
Пример #7
0
        public async Task <IActionResult> Privacy()
        {
            var        userID   = User.FindFirstValue(ClaimTypes.NameIdentifier);
            var        userName = User.FindFirstValue(ClaimTypes.Name);
            CustomUser user     = await userManager.GetUserAsync(User);

            var userEmail = user.Email;
            CurrentLoginUser currentLoginUser = new CurrentLoginUser();

            currentLoginUser.CurrentUserID    = userID;
            currentLoginUser.CurrentUserName  = userName;
            currentLoginUser.CurrentUserEmail = userEmail;

            return(View(currentLoginUser));
        }
Пример #8
0
        //public CustomAuthorizeAttribute(ICompanyUserService service)
        //{
        //}
        //不行


        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            var httpContext = filterContext.HttpContext;//能拿到httpcontext 就可以为所欲为

            //检验特性
            if (filterContext.ActionDescriptor.IsDefined(typeof(CustomAllowAnonymousAttribute), true))
            {
                return;
            }
            //检验特性
            else if (filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(CustomAllowAnonymousAttribute), true))
            {
                return;
            }
            if (httpContext.Session["CurrentUser"] == null ||
                !(httpContext.Session["CurrentUser"] is CurrentLoginUser))   //为空了,
            {
                //这里有用户,有地址 其实可以检查权限
                //如果是Ajax请求。则不能跳转到原链接,应该返回固定格式的数据
                if (httpContext.Request.IsAjaxRequest())
                //httpContext.Request.Headers["xxx"].Equals("XMLHttpRequst")
                {
                    filterContext.Result = new NewtonJsonResult(
                        new AjaxResult()
                    {
                        Result       = DoResult.OverTime,
                        DebugMessage = "登陆过期",
                        RetValue     = ""
                    });
                }
                else
                {
                    //记录跳转前的绝对地址
                    httpContext.Session["CurrentUrl"] = httpContext.Request.Url.AbsoluteUri;
                    filterContext.Result = new RedirectResult(this._LoginUrl);
                    //短路器:指定了Result,那么请求就截止了,不会执行action
                }
            }
            else
            {
                CurrentLoginUser user = (CurrentLoginUser)httpContext.Session["CurrentUser"];
                //this.logger.Info($"{user.Name}登陆了系统");
                return;//继续
            }
            //base.OnAuthorization(filterContext);
        }
Пример #9
0
        private void buttonEnter_Click(object sender, EventArgs e)
        {
            if (AccessAuthorization.getInctance().passwordIsValidate(this.comboBoxUserName.Text.ToString(),
                                                                     this.textBoxPassword.Text.ToString(), out m_currentLoginUser))
            {
                m_loginSuccessful = true;
                DbPublic.getInctance().setCurrentLoginUserName(m_currentLoginUser.staffName);
                DbPublic.getInctance().setCurrentLoginUserID(m_currentLoginUser.pkey);

                // 更新BASE_SYSTEM_CURRENT_LOGIN_USER表
                CurrentLoginUser.getInctance().insert();
                this.Close();
            }
            else
            {
                MessageBoxExtend.messageWarning("密码错误,请重新输入!");
                this.textBoxPassword.Text = "";
                this.textBoxPassword.Focus();
            }
        }
Пример #10
0
 private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (m_isExitQuestion)
     {
         if (MessageBoxExtend.messageQuestion("确定退出系统?"))
         {
             // 更新BASE_SYSTEM_CURRENT_LOGIN_USER表
             CurrentLoginUser.getInctance().delete();
             e.Cancel = false;
         }
         else
         {
             e.Cancel = true;
         }
     }
     else
     {
         // 更新BASE_SYSTEM_CURRENT_LOGIN_USER表
         CurrentLoginUser.getInctance().delete();
     }
 }
Пример #11
0
        private static Logger logger = new Logger(typeof(UserManager)); //Logger.CreateLogger(typeof(UserManager));
        /// <summary>
        /// 用户登录验证
        /// </summary>
        /// <param name="name"></param>
        /// <param name="password"></param>
        /// <param name="verifyCode"></param>
        /// <returns></returns>
        public static LoginResult Login(this HttpContextBase context, string name, string password, string verifyCode)
        {
            if (context.Session["CheckCode"] != null &&
                !string.IsNullOrWhiteSpace(context.Session["CheckCode"].ToString()) &&
                context.Session["CheckCode"].ToString().Equals(verifyCode, StringComparison.CurrentCultureIgnoreCase))
            {
                using (IAcountService servcie = DIFactory.GetContainer().Resolve <IAcountService>())
                {
                    Acount user = servcie.Set <Acount>().FirstOrDefault(u => u.name.Equals(name) || u.account.Equals(name));//账号查找
                    if (user == null)
                    {
                        return(LoginResult.NoUser);
                    }
                    //else if (!user.password.Equals(MD5Encrypt.Encrypt(password)))
                    else if (!user.password.Equals(password))
                    {
                        return(LoginResult.WrongPwd);
                    }
                    //else if (user.State == 1)
                    //{
                    //    return LoginResult.Frozen;
                    //}
                    else
                    {
                        //登录成功  写cookie session
                        CurrentLoginUser currentUser = new CurrentLoginUser()
                        {
                            Id        = user.id,
                            Name      = user.name,
                            Account   = user.account,
                            Email     = user.email,
                            Password  = user.password,
                            LoginTime = DateTime.Now
                        };

                        //都是asp.net解析的
                        #region Request
                        //context.Request.Headers["User-Agent"];
                        //context.Request["Refer"];
                        //context.Request
                        //Request 获取请求个各种参数,
                        //Header里面的各种信息
                        //InputStream上传的文件
                        #endregion

                        #region Response
                        //context.Response
                        //Response响应的 跨域、压缩、缓存、cookie、output + contentType
                        #endregion

                        #region Application
                        context.Application.Lock(); //ASP.NET 应用程序内的多个会话和请求之间共享信息
                        context.Application.Lock(); //操作之前加锁
                        context.Application.Add("try", "die");
                        context.Application.UnLock();
                        object aValue = context.Application.Get("try");
                        aValue = context.Application["try"];
                        context.Application.Remove("命名对象");
                        context.Application.RemoveAt(0);
                        context.Application.RemoveAll();
                        context.Application.Clear();
                        #endregion

                        #region Items

                        context.Items["123"] = "123";//单一会话,不同环境都可以用,比如在httpmodule获取到的信息,想传递给action;随着context释放
                        #endregion

                        #region Server
                        //辅助类 Server
                        string encode = context.Server.HtmlEncode("<我爱我家>");
                        string decode = context.Server.HtmlDecode(encode);

                        string physicalPath = context.Server.MapPath("/Home/Index");//只能做物理文件的映射
                        string encodeUrl    = context.Server.UrlEncode("<我爱我家>");
                        string decodeUrl    = context.Server.UrlDecode(encodeUrl);
                        #endregion

                        #region Cookie
                        //context.Request.Cookies

                        //HttpCookie cookie = context.Request.Cookies.Get("CurrentUser");
                        //if (cookie == null)
                        //{
                        HttpCookie myCookie = new HttpCookie("CurrentUser");
                        myCookie.Value   = JsonHelper.ObjectToString <CurrentLoginUser>(currentUser);
                        myCookie.Expires = DateTime.Now.AddMinutes(5);//保存到硬盘

                        //5分钟后  硬盘cookie
                        //不设置就是内存cookie--关闭浏览器就丢失
                        //改成过期 -1 过期
                        //修改cookie:不能修改,只能起个同名的cookie

                        //myCookie.Domain//设置cookie共享域名
                        //myCookie.Path//指定路径能享有cookie
                        context.Response.Cookies.Add(myCookie);//一定要输出
                        //}
                        //前端只能获取name-value
                        #endregion Cookie

                        #region Session
                        //context.Session.RemoveAll();
                        var sessionUser = context.Session["CurrentUser"];
                        context.Session["CurrentUser"] = currentUser;
                        context.Session.Timeout        = 3;//minute  session过期等于Abandon
                        #endregion Session

                        logger.Debug(string.Format("用户id={0} Name={1}登录系统", currentUser.Id, currentUser.Name));
                        return(LoginResult.Success);
                    }
                }
            }
            else
            {
                return(LoginResult.WrongVerify);
            }
        }