public JsonResult AllData()
        {
            var vm     = new List <LinkVM>();
            var ckdict = CookieUtility.UnpackCookie(this);

            if (!ckdict.ContainsKey("reqmachine"))
            {
                string IP       = Request.UserHostName;
                string compName = DetermineCompName(IP);
                if (!string.IsNullOrEmpty(compName))
                {
                    var tempdict = new Dictionary <string, string>();
                    tempdict.Add("reqmachine", compName);
                    CookieUtility.SetCookie(this, tempdict);
                } //end if
                vm = LinkVM.RetrieveLinks();
            }     //end
            else
            {
                vm = RetrieveAllLinks(ckdict["reqmachine"]);
            }

            var res = new JsonResult();

            res.Data = new { data = vm };
            res.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
            return(res);
        }
Esempio n. 2
0
        //==========
        #region auto log in
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            var provider = ServiceCollectionExtension.Get <IActionDescriptorCollectionProvider>();
            var desc1    = (context.ActionDescriptor as ControllerActionDescriptor);
            var desc2    = provider.ActionDescriptors.Items.Cast <ControllerActionDescriptor>()
                           .Where(t => t.MethodInfo.GetCustomAttribute <ActionAttribute>() != null && t.DisplayName == desc1.DisplayName).FirstOrDefault();
            var desc3  = desc2 ?? desc1;
            var action = desc3.MethodInfo.GetCustomAttribute <ActionAttribute>();

            if (action != null)
            {
                var actions = ServiceCollectionExtension.Get <IPermissionService>();
                if (actions != null && !actions.HasPermission(context, desc3.Id))
                {
                    return;
                }
            }

            if (desc3.ActionName == "Index" && desc3.ControllerName == "Home")
            {
                if (User.Identity.IsAuthenticated)
                {
                    string path = HttpContext.Request.Query["from"];
                    if (string.IsNullOrEmpty(path))
                    {
                        path = CookieUtility.GetCookie(TbConstant.LAST_LOGIN_PATH);
                    }
                    if (!string.IsNullOrEmpty(path) && path != "/")
                    {
                        context.Result = Redirect(path);
                    }
                }
            }
            base.OnActionExecuting(context);
        }
Esempio n. 3
0
        /// <summary>
        /// 用户退出
        /// </summary>
        /// <returns></returns>
        public ResponsResult LogoutUser()
        {
            ResponsResult result = new ResponsResult();

            CookieUtility.RemoveCookie(TbConstant.WEBSITE_AUTHENTICATION_SCHEME);
            return(result);
        }
        public ActionResult UserBookedReport(string username)
        {
            var ck = new Dictionary <string, string>();

            ck.Add("logonuser", username);
            CookieUtility.SetCookie(this, ck);
            return(RedirectToAction("ViewReport"));
        }
Esempio n. 5
0
        /// <summary>
        /// 获取后台用户登录Cookie信息
        /// </summary>
        /// <returns></returns>
        public BackstageCookie GetUserCook()
        {
            string          cookie = ServiceCollectionExtension.Decrypt(CookieUtility.GetCookie(TbConstant.WEBSITE_AUTHENTICATION_SCHEME));
            BackstageCookie back   = new BackstageCookie();

            back = cookie.GetModel <BackstageCookie>();
            return(back);
        }
Esempio n. 6
0
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (string.IsNullOrEmpty(CookieUtility.GetCookie("loginuser")))
            {
                Response.Redirect("~/login/index");
            }

            base.OnActionExecuting(filterContext);
        }
Esempio n. 7
0
        public IActionResult ValidateCode()
        {
            ValidateCode _vierificationCodeServices = new ValidateCode();
            string       code = "";

            System.IO.MemoryStream ms = _vierificationCodeServices.Create(out code);
            CookieUtility.AppendCookie(TbConstant.WEBSITE_VERIFICATION_CODE, ServiceCollectionExtension.Encrypt(code));
            return(File(ms.ToArray(), @"image/png"));
        }
        public ActionResult IBookPost()
        {
            var ckdict  = CookieUtility.UnpackCookie(this);
            var updater = ckdict["logonuser"].Split(new char[] { '|' })[0];

            var vm = new PJReportViewModels();

            vm.username = updater;

            for (var i = 0; i < 20; i++)
            {
                if (Request.Form["pckbox" + i] != null && string.Compare(Request.Form["pckbox" + i], "true", true) == 0)
                {
                    vm.ProjectList.Add(Request.Form["PJKEY" + i]);
                }
            }

            for (var i = 0; i < 20; i++)
            {
                if (Request.Form["rckbox" + i] != null && string.Compare(Request.Form["rckbox" + i], "true", true) == 0)
                {
                    vm.ReportTypeList.Add(Request.Form["RPType" + i]);
                }
            }

            vm.reporttime     = Request.Form["ReportTimeList"].ToString();
            vm.lastupdatetime = DateTime.Now;
            vm.StoreBookReportRecord();


            ViewBag.PJList = ProjectViewModels.RetrieveAllProjectKey();

            var temptypelist = new List <string>();

            temptypelist.Add(PJReportType.YieldTrend);
            temptypelist.Add(PJReportType.IssueTrend);
            temptypelist.Add(PJReportType.FailureTrend);
            temptypelist.Add(PJReportType.MonthlyPareto);
            ViewBag.RepTypeList = temptypelist;

            vm = PJReportViewModels.RetrieveBookReportRecord(updater);
            var rsilist = new List <string>();

            string[] rlist = { ReportSelectTime.MON, ReportSelectTime.TUE, ReportSelectTime.WEN, ReportSelectTime.THU, ReportSelectTime.FRI, ReportSelectTime.SAT, ReportSelectTime.SUN, ReportSelectTime.EVE };
            rsilist.AddRange(rlist);
            if (vm != null)
            {
                ViewBag.ReportTimeList = CreateSelectList(rsilist, vm.reporttime);
            }
            else
            {
                ViewBag.ReportTimeList = CreateSelectList(rsilist, "");
            }

            return(RedirectToAction("ViewReport"));
        }
Esempio n. 9
0
        /// <summary>
        /// 后端用户登录操作
        /// </summary>
        /// <param name="model">AccountViewModel实体</param>
        /// <returns></returns>
        public ResponsResult Login(BackstageUserAdd model)
        {
            ResponsResult result      = new ResponsResult();
            string        sessionCode = string.Empty;

            try
            {
                var code = CookieUtility.GetCookie(TbConstant.WEBSITE_VERIFICATION_CODE);
                if (code != null)
                {
                    sessionCode = ServiceCollectionExtension.Decrypt(code);
                }
            }
            catch (Exception ex)
            {
                Log4Net.Debug(ex);
            }
            if (model.ErrCount >= 3)
            {
                if (!model.VerCode.ToString().ToLower().Equals(sessionCode.ToLower()))
                {
                    return(result.SetStatus(ErrorCode.NotFound, "验证码输入不正确!"));
                }
            }

            BackstageUser account = this.First <BackstageUser>(t => t.LoginName == model.LoginName);

            if (account == null)
            {
                return(result.SetStatus(ErrorCode.NotFound, "账号不存在!"));
            }
            string pwd = Security.MD5(model.Password);

            if (!account.Password.Equals(pwd, StringComparison.OrdinalIgnoreCase))
            {
                return(result.SetStatus(ErrorCode.InvalidPassword));
            }
            switch (account.AccountStatus)
            {
            case (int)AccountStatus.Disabled:
                return(result.SetStatus(ErrorCode.AccountDisabled, "账号不可用!"));
            }

            account.LastLoginTime = DateTime.Now;
            account.LastLoginIp   = "";
            this.Update(account, true);
            MvcIdentity identity = new MvcIdentity(account.Id, account.LoginName, account.LoginName, account.Email, (int)account.AccountType, null, account.LastLoginTime);

            identity.Login(TbConstant.WEBSITE_AUTHENTICATION_SCHEME, x =>
            {
                x.Expires  = DateTime.Now.AddHours(25);//滑动过期时间
                x.HttpOnly = true;
            });

            return(result);
        }
Esempio n. 10
0
        public async Task <IActionResult> CreatUser([FromBody] UserModel userModel)
        {
            if (userModel.IsValid())
            {
                // add to the db
                UserAPI.CreateUser(this._settings.Value.API.UserAPI, userModel);

                // set the cookie
                CookieUtility.SetEmail(this.HttpContext, userModel.Email);
            }

            return(Json(userModel));
        }
Esempio n. 11
0
        public async Task <ActionResult> Refresh()
        {
            // Retrieve the application_token from cookies
            string expiredJwt = Request.Cookies.SingleOrDefault(cookie => cookie.Key == TokenOptionsStrings.ApplicationToken).Value;

            ClaimsPrincipal principal = this._token.GetPrincipalFromExpiredToken(expiredJwt);

            string userName = principal.Identity.Name;

            ApplicationUser user = _userManager.Users.SingleOrDefault(u => u.UserName == userName);

            if (user == null)
            {
                return(BadRequest(Errors.AddErrorToModelState(ErrorCodes.UserNotFound, ErrorDescriptions.UserNotFoundFailure, ModelState)));
            }

            string refreshToken = await _userManager.GetAuthenticationTokenAsync(user, TokenOptionsStrings.RefreshTokenProvider, TokenOptionsStrings.RefreshToken);

            // if the refresh token is invalid, I don't have a nice way of handling it on the client. For now we will ignore and assume its always valid
            // Validate Refresh Token is still valid
            //bool isValid = await _userManager.VerifyUserTokenAsync(user, TokenOptionsStrings.RefreshTokenProvider, TokenOptionsStrings.RefreshToken, refreshToken);
            //if (!isValid)
            //{
            //  return BadRequest(Errors.AddErrorToModelState(ErrorCodes.RefreshToken, ErrorDescriptions.RefreshTokenFailure, ModelState));
            //}

            ClaimsIdentity identity = await _getIdentity.GenerateClaimsIdentity(user);

            if (identity == null)
            {
                return(BadRequest(Errors.AddErrorToModelState(ErrorCodes.RefreshToken, ErrorDescriptions.RefreshTokenFailure, ModelState)));
            }

            // Remove old refresh token from the database
            await _userManager.RemoveAuthenticationTokenAsync(user, TokenOptionsStrings.RefreshTokenProvider, TokenOptionsStrings.RefreshToken);

            // Generate a new one
            string newRefreshToken = await _userManager.GenerateUserTokenAsync(user, TokenOptionsStrings.RefreshTokenProvider, TokenOptionsStrings.RefreshToken);

            // Set it in the database
            await _userManager.SetAuthenticationTokenAsync(user, TokenOptionsStrings.RefreshTokenProvider, TokenOptionsStrings.RefreshToken, newRefreshToken);

            // Generate new jwt
            ApplicationToken token = await Token.GenerateJwt(user.UserName, identity, this._jwtFactory, this._jwtOptions, this._jsonSerializerSettings);

            CookieUtility.RemoveCookie(Response, TokenOptionsStrings.ApplicationToken);

            CookieUtility.GenerateHttpOnlyCookie(Response, TokenOptionsStrings.ApplicationToken, token);

            return(new OkObjectResult(token));
        }
        public JsonResult NeverShowIE8Modal()
        {
            var ckdict = CookieUtility.UnpackCookie(this);

            if (ckdict.ContainsKey("reqmachine"))
            {
                var ReqMachine = ckdict["reqmachine"];
                MachineLink.NeverShowIE8Modal(ReqMachine);
            }

            var res = new JsonResult();

            res.Data = new { success = true };
            return(res);
        }
Esempio n. 13
0
        public override void OnActionExecuted(ActionExecutedContext context)
        {
            if (context.Filters.Any(item => item is IAllowAnonymousFilter))
            {
                base.OnActionExecuted(context);
                return;
            }
            var action = context.ActionDescriptor as ControllerActionDescriptor;

            if (!context.HttpContext.IsAjaxRequest() && !action.ActionName.Equals("Index", StringComparison.OrdinalIgnoreCase) && !action.ControllerName.Equals("webapi", StringComparison.OrdinalIgnoreCase))
            {
                CookieUtility.AppendCookie(TbConstant.LAST_LOGIN_PATH, HttpContext.Request.Path);
            }
            base.OnActionExecuted(context);
        }
        public void ToCookie()
        {
            StringBuilder builder = new StringBuilder();

            builder.Append(this.UserId);
            builder.Append(Seperator.FirstChar);
            builder.Append(this.UserName);
            builder.Append(Seperator.FirstChar);
            builder.Append(this.Role);
            builder.Append(Seperator.FirstChar);
            builder.Append(this.Status);
            builder.Append(Seperator.FirstChar);
            builder.Append(this.CreateDate);
            CookieUtility.Set(CookieNames.USERINFO, builder.ToString());
        }
        public override async Task InitAsync()
        {
            await base.InitAsync();

            var cookies = new List <string>();

            for (int i = 1; i < CookieCount; i++)
            {
                var result = await $"{BaseUrl}/login/cookie?uid=testuser{i}".CreateHttpRequest().TryGetAsStringAsync();
                var cookie = CookieUtility.Clean(result.ResponseMessage.GetCookie());

                cookies.Add(cookie);
            }
            _cookies = cookies.ToArray();
        }
        public JsonResult RemoveCustomLink()
        {
            var linkname = Request.Form["link_name"];

            var vm      = new List <LinkVM>();
            var machine = string.Empty;

            var ckdict = CookieUtility.UnpackCookie(this);

            if (!ckdict.ContainsKey("reqmachine"))
            {
                string IP       = Request.UserHostName;
                string compName = DetermineCompName(IP);
                if (!string.IsNullOrEmpty(compName))
                {
                    var tempdict = new Dictionary <string, string>();
                    tempdict.Add("reqmachine", compName);
                    machine = compName;
                    CookieUtility.SetCookie(this, tempdict);
                } //end if
                vm = LinkVM.RetrieveLinks();
            }     //end
            else
            {
                vm      = RetrieveAllLinks(ckdict["reqmachine"]);
                machine = ckdict["reqmachine"];
            }

            var validlink = string.Empty;

            foreach (var item in vm)
            {
                if (string.Compare(linkname, item.LinkName) == 0)
                {
                    validlink = item.Link;
                    if (!string.IsNullOrEmpty(machine))
                    {
                        MachineLink.RemoveCustomLink(item.LinkName, item.Link, item.Logo, item.Comment, machine);
                    }
                    break;
                }
            }

            var res = new JsonResult();

            res.Data = new { success = true };
            return(res);
        }
        // GET: DashBoard
        public ActionResult SystemBoard()
        {
            var systemeventlist = ProjectEvent.RetrieveEvent(30);

            ViewBag.assignedtasklist = new List <IssueViewModels>();

            var ckdict = CookieUtility.UnpackCookie(this);

            if (ckdict.ContainsKey("logonuser") && !string.IsNullOrEmpty(ckdict["logonuser"]))
            {
                var usernm = ckdict["logonuser"].Split(new char[] { '|' })[0];
                ViewBag.assignedtasklist = IssueViewModels.RetrieveIssueByAssignee(usernm, Resolute.Pending, 60);
            }

            return(View(systemeventlist));
        }
Esempio n. 18
0
 public ActionResult Index()
 {
     if (User.Identity.IsAuthenticated)
     {
         string path = HttpContext.Request.Query["from"];
         if (string.IsNullOrEmpty(path))
         {
             path = CookieUtility.GetCookie(TbConstant.LAST_LOGIN_PATH);
         }
         if (!string.IsNullOrEmpty(path) && path != "/")
         {
             return(Redirect(System.Web.HttpUtility.UrlDecode(path)));
         }
     }
     return(View());
 }
Esempio n. 19
0
File: Main.cs Progetto: jzh225/NetC
        public static string IsSingleLogin()
        {
            string    result     = string.Empty;
            Hashtable hOnline    = (Hashtable)HttpContext.Current.Application["Online"];
            bool      isHaveGuid = true;
            string    strGUId    = string.Empty;

            if (HttpContext.Current.Session[Config.sessionUserGUID] == null)
            {
                if (CookieUtility.Get(Config.cookiesUserGUID) == null)
                {
                    result     = "请重新登录";
                    isHaveGuid = false;
                }
                else
                {
                    strGUId = CookieUtility.GetValue(Config.cookiesUserGUID);
                }
            }
            else
            {
                strGUId = HttpContext.Current.Session[Config.sessionUserGUID].ToString();
            }

            if (hOnline != null && isHaveGuid)
            {
                IDictionaryEnumerator idE = hOnline.GetEnumerator();
                while (idE.MoveNext())
                {
                    if (idE.Key != null && idE.Key.ToString().Equals(strGUId))
                    {
                        //already login
                        if (idE.Value != null && "XXXXXX".Equals(idE.Value.ToString()))
                        {
                            hOnline.Remove(strGUId);
                            HttpContext.Current.Application.Lock();
                            HttpContext.Current.Application["Online"] = hOnline;
                            HttpContext.Current.Application.UnLock();
                            result = "你的帐号已在别处登陆,你被强迫下线!";
                        }
                        break;
                    }
                }
            }
            return(result);
        }
Esempio n. 20
0
        /// <summary>
        /// Gets if the user is in the cookie and is in the db
        /// </summary>
        /// <returns></returns>
        private async Task <string> GetUserEmail()
        {
            // check if the cookie exists and whats the email in the cookie
            string result = CookieUtility.GetEmail(this.HttpContext);

            if (!String.IsNullOrEmpty(result))
            {
                UserModel user = await UserAPI.GetUserByEmail(this._settings.Value.API.UserAPI, result);

                // if the user dosnt exists we set the result as empy as the cookie user is not a valid user
                if (user == null)
                {
                    result = String.Empty;
                }
            }

            return(result);
        }
Esempio n. 21
0
        // GET: PJReport
        public ActionResult ITag()
        {
            var ckdict = CookieUtility.UnpackCookie(this);

            if (ckdict.ContainsKey("logonuser") && !string.IsNullOrEmpty(ckdict["logonuser"]))
            {
            }
            else
            {
                var ck = new Dictionary <string, string>();
                ck.Add("logonredirectctrl", "PJReport");
                ck.Add("logonredirectact", "ITag");
                CookieUtility.SetCookie(this, ck);
                return(RedirectToAction("LoginUser", "User"));
            }

            ViewBag.PJList = ProjectViewModels.RetrieveAllProjectKey();

            var temptypelist = new List <string>();

            temptypelist.Add(PJReportType.YieldTrend);
            temptypelist.Add(PJReportType.IssueTrend);
            temptypelist.Add(PJReportType.FailureTrend);
            temptypelist.Add(PJReportType.MonthlyPareto);
            ViewBag.RepTypeList = temptypelist;

            var username = ckdict["logonuser"].Split(new char[] { '|' })[0];
            var vm       = PJReportViewModels.RetrieveBookReportRecord(username);

            var rsilist = new List <string>();

            string[] rlist = { ReportSelectTime.MON, ReportSelectTime.TUE, ReportSelectTime.WEN, ReportSelectTime.THU, ReportSelectTime.FRI, ReportSelectTime.SAT, ReportSelectTime.SUN, ReportSelectTime.EVE };
            rsilist.AddRange(rlist);
            if (vm != null)
            {
                ViewBag.ReportTimeList = CreateSelectList(rsilist, vm.reporttime);
            }
            else
            {
                ViewBag.ReportTimeList = CreateSelectList(rsilist, "");
            }

            return(View(vm));
        }
Esempio n. 22
0
        internal static async Task <HttpResponseMessage> InternalExecuteWithAutoRedirectCoreAsync(this HttpMessageInvoker messageInvoker, IHttpRequest request, CancellationToken token)
        {
            Uri?redirectUri;
            HttpResponseMessage tmpResponse = null !;
            var innerRequest = request.GetHttpRequestMessage();

            for (int i = 0; i <= request.MaxAutomaticRedirections; i++)
            {
                tmpResponse = await messageInvoker.SendAsync(innerRequest, token).ConfigureAwait(false);

                if ((redirectUri = tmpResponse.GetUriForRedirect(request.RequestUri)) != null)
                {
                    var redirectRequest = new HttpRequestMessage(HttpMethod.Get, redirectUri);

                    foreach (var item in innerRequest.Headers)
                    {
                        redirectRequest.Headers.Add(item.Key, item.Value);
                    }

                    if (tmpResponse.TryGetCookie(out var setCookie))
                    {
                        if (innerRequest.TryGetCookie(out var cookie) &&
                            !string.IsNullOrWhiteSpace(cookie))
                        {
                            cookie = CookieUtility.Merge(cookie, setCookie);
                        }
                        else
                        {
                            cookie = CookieUtility.Clean(setCookie);
                        }

                        redirectRequest.Headers.Remove(HttpHeaderDefinitions.Cookie);
                        redirectRequest.Headers.TryAddWithoutValidation(HttpHeaderDefinitions.Cookie, cookie);
                    }

                    innerRequest.Dispose();
                    tmpResponse.Dispose();

                    innerRequest = redirectRequest;
                    continue;
                }
                innerRequest.Dispose();
                break;
            }
Esempio n. 23
0
        // GET: Login
        public ActionResult Index(UserInfo user)
        {
            if (!string.IsNullOrEmpty(CookieUtility.GetCookie("loginuser")))
            {
                return(RedirectToAction("list", "business"));
            }

            if (user != null && user.UserName != null)
            {
                string userName = ConfigurationManager.AppSettings["UserName"];
                string password = ConfigurationManager.AppSettings["Password"];
                if (user.UserName.Trim() == userName && user.Password.Trim() == password)
                {
                    CookieUtility.SetCookie("loginuser", userName, true);

                    return(RedirectToAction("list", "business"));
                }
            }
            return(View());
        }
Esempio n. 24
0
        protected void Page_Load(object sender, EventArgs e)
        {
            pnLogin.Visible    = true;
            pnUserInfo.Visible = false;

            if (CookieUtility.GetCookie("Member_Email") != null)
            {
                if (MemberDB.GetIDByEmail(CookieUtility.GetCookie("Member_Email")) != 0)
                {
                    MemberInfo info = MemberDB.GetInfoByEmail(CookieUtility.GetCookie("Member_Email"));
                    if (info != null)
                    {
                        pnLogin.Visible    = false;
                        pnUserInfo.Visible = true;

                        lnkMemberInfo.Text        = info.Member_Fullname;
                        lnkMemberInfo.NavigateUrl = lnkUserCP.NavigateUrl = AppEnv.WEB_CMD + "memberinfo&id=" + info.Member_ID;
                    }
                }
            }
        }
        public JsonResult AddCustomLink()
        {
            var mvm = new MachineLink();

            mvm.Link     = Request.Form["link"];
            mvm.LinkName = Request.Form["link_name"];
            mvm.Comment  = Request.Form["comment"];
            mvm.Logo     = Request.Form["image_url"];

            var ckdict = CookieUtility.UnpackCookie(this);

            if (ckdict.ContainsKey("reqmachine"))
            {
                mvm.ReqMachine = ckdict["reqmachine"];
                MachineLink.StoreLink(mvm.LinkName, mvm.Link, mvm.Logo, mvm.Comment, mvm.ReqMachine);
            }

            var res = new JsonResult();

            res.Data = new { success = true };
            return(res);
        }
Esempio n. 26
0
        protected override void OnInit(EventArgs e)
        {
            //base.OnInit(e);
            //string returnUrl = Server.UrlEncode(Request.RawUrl);
            //if (AuthenticateUtility.IsAuthenticated())
            //{
            //    if (UserDB.GetIDByEmail(AuthenticateUtility.GetUserEmail()) != 0)
            //    {
            //        if (CurrentAdminInfo == null) CurrentAdminInfo = UserDB.GetInfoByEmail(AuthenticateUtility.GetUserEmail());
            //    }
            //    else Response.Redirect(AppEnv.ADMIN_PATH + "Login.aspx?returnurl=" + returnUrl);
            //}
            //else Response.Redirect(AppEnv.ADMIN_PATH + "Login.aspx?returnurl=" + returnUrl);

            base.OnInit(e);
            string returnUrl = Server.UrlEncode(Request.RawUrl);

            if (CookieUtility.GetCookie("User_Email") != null)
            {
                if (UserDB.GetIDByEmail(CookieUtility.GetCookie("User_Email")) != 0)
                {
                    if (CurrentAdminInfo == null)
                    {
                        CurrentAdminInfo = UserDB.GetInfoByEmail(CookieUtility.GetCookie("User_Email"));
                    }
                }
                else
                {
                    Response.Redirect(AppEnv.ADMIN_PATH + "Login.aspx?returnurl=" + returnUrl);
                }
            }
            else
            {
                Response.Redirect(AppEnv.ADMIN_PATH + "Login.aspx?returnurl=" + returnUrl);
            }
        }
Esempio n. 27
0
 public void Logout(string scheme)
 {
     CookieUtility.RemoveCookie(scheme, true, "");
 }
Esempio n. 28
0
        public virtual async Task OnAuthorizationAsync(AuthorizationFilterContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }
            AuthorizationPolicy effectivePolicy = Policy;

            if (effectivePolicy == null)
            {
                if (PolicyProvider == null)
                {
                    throw new InvalidOperationException("An AuthorizationPolicy cannot be created without a valid instance of IAuthorizationPolicyProvider.");
                }
                effectivePolicy = await AuthorizationPolicy.CombineAsync(PolicyProvider, AuthorizeData);
            }
            if (effectivePolicy != null)
            {
                MvcPrincipal newPrincipal  = null;
                string       currentScheme = effectivePolicy.AuthenticationSchemes.FirstOrDefault();
                if (!string.IsNullOrEmpty(currentScheme))
                {
                    if (!(context.HttpContext.User.Identity is MvcIdentity) || !context.HttpContext.User.Identity.IsAuthenticated)
                    {
                        string cookie = CookieUtility.GetCookie(currentScheme, true);
                        if (!string.IsNullOrEmpty(cookie))
                        {
                            try
                            {
                                string      value    = ServiceCollectionExtension.Decrypt(cookie);
                                MvcIdentity identity = JsonExtensions.GetModel <MvcIdentity>(value, "");
                                if (identity != null)
                                {
                                    newPrincipal = identity.GetPrincipal();
                                }
                            }
                            catch
                            {
                            }
                        }
                    }
                    else
                    {
                        newPrincipal = (context.HttpContext.User as MvcPrincipal);
                    }
                }
                if (newPrincipal == null)
                {
                    context.HttpContext.User = MvcIdentity.Instance.GetPrincipal();
                }
                else
                {
                    context.HttpContext.User = newPrincipal;
                }
                if (!context.Filters.Any((IFilterMetadata item) => item is IAllowAnonymousFilter))
                {
                    if (context.HttpContext.User.Identity.IsAuthenticated)
                    {
                        if (AuthorizeFilter == null)
                        {
                            AuthorizeFilter = ServiceProviderServiceExtensions.GetService <IAuthorizeFilter>(context.HttpContext.RequestServices);
                        }
                        if (AuthorizeFilter != null)
                        {
                            await AuthorizeFilter.OnAuthorizedAsync(context, currentScheme);
                        }
                    }
                    else
                    {
                        context.Result = new ChallengeResult(effectivePolicy.AuthenticationSchemes.ToArray());
                    }
                }
            }
        }
Esempio n. 29
0
 public void Login(string scheme, Action <CookieOptions> options = null)
 {
     CookieUtility.AppendCookie(scheme, ServiceCollectionExtension.Encrypt(JsonConvert.SerializeObject(this)), true, options);
 }
Esempio n. 30
0
        public ActionResult ViewReport()
        {
            var ckdict = CookieUtility.UnpackCookie(this);

            if (ckdict.ContainsKey("logonuser") && !string.IsNullOrEmpty(ckdict["logonuser"]))
            {
            }
            else
            {
                var ck = new Dictionary <string, string>();
                ck.Add("logonredirectctrl", "PJReport");
                ck.Add("logonredirectact", "ViewReport");
                CookieUtility.SetCookie(this, ck);
                return(RedirectToAction("LoginUser", "User"));
            }

            var updater = ckdict["logonuser"].Split(new char[] { '|' })[0];
            var vm      = PJReportViewModels.RetrieveBookReportRecord(updater);

            if (vm == null)
            {
                return(RedirectToAction("ITag"));
            }

            var pjreportdict = new Dictionary <string, PJReportItem>();

            foreach (var pjkey in vm.ProjectList)
            {
                foreach (var reptype in vm.ReportTypeList)
                {
                    if (string.Compare(reptype, PJReportType.YieldTrend) == 0)
                    {
                        ProjectController.ProjectWeeklyTrend(this, pjkey, 14);
                        var reportitem = new PJReportItem();
                        if (!string.IsNullOrEmpty(this.ViewBag.chartscript))
                        {
                            reportitem.YieldTrend    = this.ViewBag.chartscript.Replace("weeklyyield", pjkey + "weeklyyield");
                            this.ViewBag.chartscript = null;
                            if (!pjreportdict.ContainsKey(pjkey))
                            {
                                pjreportdict.Add(pjkey, reportitem);
                            }
                            else
                            {
                                pjreportdict[pjkey].YieldTrend = reportitem.YieldTrend;
                            }
                        }
                    }

                    if (string.Compare(reptype, PJReportType.MonthlyPareto) == 0)
                    {
                        MonthlyPareto(pjkey);
                        if (!string.IsNullOrEmpty(this.ViewBag.rparetoscript))
                        {
                            if (pjreportdict.ContainsKey(pjkey))
                            {
                                pjreportdict[pjkey].MonthlyPareto = ViewBag.rparetoscript.Replace("rparetochart", pjkey + "rparetochart");
                                ViewBag.rparetoscript             = null;
                            }
                            else
                            {
                                var reportitem = new PJReportItem();
                                reportitem.MonthlyPareto = ViewBag.rparetoscript.Replace("rparetochart", pjkey + "rparetochart");
                                ViewBag.rparetoscript    = null;
                                pjreportdict.Add(pjkey, reportitem);
                            }
                        }
                    }

                    if (string.Compare(reptype, PJReportType.IssueTrend) == 0)
                    {
                        IssueCountTrend(pjkey);
                        if (!string.IsNullOrEmpty(this.ViewBag.issuetrendscript))
                        {
                            if (pjreportdict.ContainsKey(pjkey))
                            {
                                pjreportdict[pjkey].IssueTrend = ViewBag.issuetrendscript.Replace("issuetrendchart", pjkey + "issuetrendchart");
                                ViewBag.issuetrendscript       = null;
                            }
                            else
                            {
                                var reportitem = new PJReportItem();
                                reportitem.IssueTrend    = ViewBag.issuetrendscript.Replace("issuetrendchart", pjkey + "issuetrendchart");
                                ViewBag.issuetrendscript = null;
                                pjreportdict.Add(pjkey, reportitem);
                            }
                        }
                    }

                    if (string.Compare(reptype, PJReportType.FailureTrend) == 0)
                    {
                        var chartlist = PJFailureTrend(pjkey);
                        for (var idx = 0; idx < chartlist.Count; idx++)
                        {
                            chartlist[idx] = chartlist[idx].Replace("#ElementID#", pjkey + "failuretrend" + idx);
                        }

                        if (pjreportdict.ContainsKey(pjkey))
                        {
                            pjreportdict[pjkey].FailureTrends = chartlist;
                        }
                        else
                        {
                            var reportitem = new PJReportItem();
                            reportitem.FailureTrends = chartlist;
                            pjreportdict.Add(pjkey, reportitem);
                        }
                    }
                }
            }

            ViewBag.ReportDict = pjreportdict;

            return(View());
        }