Esempio n. 1
0
        protected override void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext)
        {
            if (User.Identity.IsAuthenticated)
            {
                var user            = UserManager.FindById(User.Identity.GetUserId());
                var institutionType = user.Institution is Hospital ? InstitutionType.Hospital
                    : (user.Institution is Lab ? InstitutionType.Lab : InstitutionType.Admin);
                //var country_user = ;
                ViewBag.UserInstitutionType = (int)institutionType;
                ViewBag.DateofServer        = DateTime.Now.ToString("d", CultureInfo.CreateSpecificCulture("es-GT"));
                ViewBag.SARI                 = (user.Institution.SARI == true) ? true : false;
                ViewBag.ILI                  = (user.Institution.ILI == true) ? true : false;
                ViewBag.InstAccesLevel       = (int)user.Institution.AccessLevel;
                ViewBag.unusual              = (user.Institution.surv_unusual == true) ? true : false;
                ViewBag.AlertDefinitionBegin = (db.ConfAlertCaseDefinition.Where(y => y.id_country == user.Institution.CountryID).Any()) ? db.ConfAlertCaseDefinition.Where(y => y.id_country == user.Institution.CountryID).FirstOrDefault().month_begin : -1;
                ViewBag.AlertDefinitionEnd   = (db.ConfAlertCaseDefinition.Where(y => y.id_country == user.Institution.CountryID).Any()) ? db.ConfAlertCaseDefinition.Where(y => y.id_country == user.Institution.CountryID).FirstOrDefault().month_end : -1;
                ViewBag.UsrCtry              = user.Institution.CountryID;
                ViewBag.UsrCtryLang          = user.Institution.Country.Language;
                ViewBag.UsrInstID            = user.InstitutionID;
                ViewBag.UsrInstNPHL          = user.Institution.NPHL;
                ViewBag.NPHL_exist           = (db.Institutions.OfType <Lab>()
                                                .Where(x => x.NPHL == true && x.CountryID == user.Institution.CountryID).Count() > 0);
                ViewBag.UR         = (string)(User.IsInRole("Admin") ? "adm" : User.IsInRole("Modify_Epi") ? "mod_epi" : User.IsInRole("Modify_Lab") ? "mod_lab" : User.IsInRole("Close_case") ? "clo_case" : User.IsInRole("Staff") ? "stf" : User.IsInRole("Report") ? "rpt" :   "");
                ViewBag.CmbService = false;
            }

            base.OnAuthentication(filterContext);
        }
 protected override void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext)
 {
     if (!filterContext.HttpContext.Request.IsAjaxRequest())
     {
         //if (!isLogged)
         //{
         //    filterContext.Result = new RedirectResult(master.framework.Configuration.MasterFramework.Authentication.URLNotAuthenticated);
         //}
         #region Validate Session
         //var keyAux = isLogged ? UserAuth.Session : GetUserSessionCookie();
         //if (!string.IsNullOrWhiteSpace(keyAux))
         //{
         //    if (MustCheckSession())
         //    {
         //        UserAuth = srAuthServiceClient.GetUserSession(keyAux);
         //        if (!isLogged)
         //        {
         //            RemoveCheckSessionCookie();
         //            RemoveUserSessionCookie();
         //        }
         //        else
         //        {
         //            SetUserSessionCookie();
         //            SetCheckSessionCookie();
         //        }
         //    }
         //}
         #endregion
     }
 }
        protected override void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext)
        {
            HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName + "_ADMIN"];

            if (authCookie != null)
            {
                FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
                JavaScriptSerializer      js         = new JavaScriptSerializer();
                int  userID = js.Deserialize <int>(authTicket.UserData);
                User user   = Repository.User.FindById(userID);
                if (user == null)
                {
                    return;
                }
                var identity  = new GenericIdentity(authTicket.Name, "User");
                var principal = new UserPrincipal(identity);
                principal.UserData             = user;
                filterContext.HttpContext.User = principal;
                this.userID = userID;
            }
            else
            {
                var principal = new GenericPrincipal(new GenericIdentity(String.Empty), null);
                filterContext.HttpContext.User = principal;
            }
        }
Esempio n. 4
0
        public static void ConfigureAuth(IAppBuilder app)
        {

            app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
            app.UseCookieAuthentication(new CookieAuthenticationOptions());

            app.UseOpenIdConnectAuthentication(
                new OpenIdConnectAuthenticationOptions
                {
                    ClientId = ClientId,
                    Authority = Authority,
                    PostLogoutRedirectUri = PostLogoutRedirectUri,

                    Notifications = new OpenIdConnectAuthenticationNotifications()
                    {
                        // If there is a code in the OpenID Connect response, redeem it for an access token and refresh token, and store those away.
                        AuthorizationCodeReceived = (context) =>
                        {
                            var code = context.Code;
                            var credential = new ClientCredential(ClientId, AppKey);
                            var signedInUserId = context.AuthenticationTicket.Identity.FindFirst(ClaimTypes.NameIdentifier).Value;
                            var authContext = new AuthenticationContext(Authority);
                            var result = authContext.AcquireTokenByAuthorizationCode(code,
                                new Uri(HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Path)), credential,
                                GraphResourceId);
                            return Task.FromResult(0);
                        }
                    }
                });
        }
        protected override void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext)
        {
            base.OnAuthentication(filterContext);
            HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];

            if (authCookie != null)
            {
                FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
                JavaScriptSerializer      js         = new JavaScriptSerializer();
                int      customerID = js.Deserialize <int>(authTicket.UserData);
                Customer customer   = Repository.Customer.FindById(customerID);
                if (customer == null)
                {
                    return;
                }
                var identity = new GenericIdentity(authTicket.Name, "Customer");
                CustomerPrincipal principal = new CustomerPrincipal(identity);
                principal.UserData             = customer;
                filterContext.HttpContext.User = principal;
            }
            else
            {
                var principal = new GenericPrincipal(new GenericIdentity(""), null);
                filterContext.HttpContext.User = principal;
            }
        }
Esempio n. 6
0
 protected override void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext)
 {
     if (filterContext.Controller.GetType().Name == "AccountController" && filterContext.ActionDescriptor.ActionName == "login")
     {
         Guid result;
         if (!string.IsNullOrEmpty(SessionVariables.UserId) && Guid.TryParse(SessionVariables.UserId, out result))
         {
             //Already a anonymous user, so good to go.
         }
         else
         {
             //Seems to be a logged in a user. So, clear the session
             Session.Clear();
         }
     }
     //Perform a false authentication for anonymous users (signup, login, activation etc. views/actions) so that SignalR will have a user name to manage its connections
     if (!string.IsNullOrEmpty(SessionVariables.UserId))
     {
         filterContext.HttpContext.User = new CustomPrincipal(new CustomIdentity(SessionVariables.UserId, "Anonymous"));
     }
     else
     {
         string userName = Guid.NewGuid().ToString();
         filterContext.HttpContext.User = new CustomPrincipal(new CustomIdentity(userName, "Anonymous"));
         FormsAuthentication.SetAuthCookie(userName, false);
         SessionVariables.UserId = userName;
     }
     base.OnAuthentication(filterContext);
 }
Esempio n. 7
0
        protected override void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext)
        {
            //if (!User.Identity.IsAuthenticated)
            //{
            //    filterContext.Result = RedirectToAction("Login", "Account", new { Area=""});
            //}

            base.OnAuthentication(filterContext);
        }
Esempio n. 8
0
 protected override void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext)
 {
     base.OnAuthentication(filterContext);
     if (Session["ctx"] == null || !Request.IsAuthenticated)
     {
         String url = System.Web.Security.FormsAuthentication.LoginUrl + "?X-Requested-With=XMLHttpRequest";
         filterContext.Result = new RedirectResult(url);
     }
 }
 protected override void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext)
 {
     base.OnAuthentication(filterContext);
     try
     {
         string action     = filterContext.RouteData.Values["action"].ToString();
         string controller = filterContext.RouteData.Values["controller"].ToString();
         if (string.Equals(controller, "home", StringComparison.OrdinalIgnoreCase) && string.Equals(action, "index", StringComparison.OrdinalIgnoreCase))
         {
             if (Request.IsAuthenticated)
             {
                 AccountLoginStatusModel account = JsonConvert.DeserializeObject <AccountLoginStatusModel>(User.Identity.Name);
                 filterContext.HttpContext.Items.Add("currentUser", account);
                 LoginAccount = account;
             }
             return;
         }
         if (string.Equals(action, "login", StringComparison.OrdinalIgnoreCase))
         {
             return;
         }
         if (string.Equals(action, "logout", StringComparison.OrdinalIgnoreCase))
         {
             return;
         }
         if (string.Equals(action, "register", StringComparison.OrdinalIgnoreCase))
         {
             return;
         }
         if (string.Equals(action, "ValideEmail", StringComparison.OrdinalIgnoreCase))
         {
             return;
         }
         if (string.Equals(action, "code", StringComparison.OrdinalIgnoreCase))
         {
             return;
         }
         if (Request.IsAuthenticated)
         {
             AccountLoginStatusModel account = JsonConvert.DeserializeObject <AccountLoginStatusModel>(User.Identity.Name);
             filterContext.HttpContext.Items.Add("currentUser", account);
             LoginAccount = account;
         }
         else
         {
             Response.Redirect("/Account/Login");
             filterContext.Result = new EmptyResult();
         }
     }
     catch (Exception ex)
     {
         Response.Redirect("/Account/Login");
         filterContext.Result = new EmptyResult();
         throw ex;
     }
 }
Esempio n. 10
0
        protected override void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext)
        {
            var allowAnonymous = false;

            //var attributes = new List<dynamic>();

            object[] controllerAttrs = filterContext.ActionDescriptor.ControllerDescriptor.GetCustomAttributes(typeof(AllowAnonymousAttribute), true);

            if (controllerAttrs != null)
            {
                controllerAttrs.ToList().ForEach(item =>
                {
                    if (item is AllowAnonymousAttribute)
                    {
                        allowAnonymous = true;
                    }
                });
            }

            object[] actionAttrs = filterContext.ActionDescriptor.GetCustomAttributes(typeof(AllowAnonymousAttribute), true);
            if (actionAttrs != null)
            {
                actionAttrs.ToList().ForEach(item =>
                {
                    if (item is AllowAnonymousAttribute)
                    {
                        allowAnonymous = true;
                    }
                });
            }

            //var enumerator = attributes.GetEnumerator();

            //while (enumerator.MoveNext())
            //{
            //    if (enumerator.Current is AllowAnonymousAttribute)
            //        allowAnonymous = true;
            //}

            var user = System.Web.HttpContext.Current.Session["User"] as G_UserDTO;

            if (user == null && !allowAnonymous)
            {
                System.Web.HttpContext.Current.Response.Redirect("/jiajudai/login", true);
            }
            //user = new G_UserDTO();
            if (user != null)
            {
                this.User        = user;
                ViewBag.User     = user;
                ViewBag.UserName = user.UserName;
            }

            base.OnAuthentication(filterContext);
        }
Esempio n. 11
0
        protected override void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext)
        {
            if (filterContext.Principal.Identity.IsAuthenticated)
            {
                ViewBag.UserName  = filterContext.Principal.Identity.Name;
                ViewBag.UserEmail = string.Empty; // since name = email; we just show one of them
            }

            base.OnAuthentication(filterContext);

            //Logger dojoLogger = NLog.LogManager.GetCurrentClassLogger();
            //dojoLogger.Trace(string.Format("User {0} [{1}] is authenticated.", ViewBag.UserName, ViewBag.UserEmail));
        }
Esempio n. 12
0
        protected override void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext)
        {
            var user = System.Web.HttpContext.Current.Session["User"] as UserDTO;

            if (user == null || !user.IsSupper)
            {
                System.Web.HttpContext.Current.Response.Redirect("/home", true);
            }

            this.User        = user;
            ViewBag.User     = user;
            ViewBag.UserName = user.UserName;
            base.OnAuthentication(filterContext);
        }
Esempio n. 13
0
        protected override void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext)
        {
            bool checkForAuthorization = filterContext.ActionDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true) || filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true);

            if (checkForAuthorization)
            {
                base.OnAuthentication(filterContext);
                return;
            }
            if (Session.Keys.Count == 0 && Session["UserID"] == null)
            {
                filterContext.Result = new RedirectResult("~/User/Index");
                return;
            }
            base.OnAuthentication(filterContext);
        }
Esempio n. 14
0
 protected override void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext)
 {
     using (var ctx = new ShoelaceDbContext())
     {
         var tid = RouteData.GetTenantId();
         if (User.Identity.IsAuthenticated)
         {
             var ct = ctx.Users.Where(x => x.AccountId == tid && x.UserName == User.Identity.Name).Count();
             if (ct <= 0)
             {
                 HttpContext.SignOut();
                 filterContext.Result = RedirectToAction("Index", "Home");
             }
         }
     }
     base.OnAuthentication(filterContext);
 }
Esempio n. 15
0
        public void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext)
        {
            var    httpContext = filterContext.RequestContext.HttpContext;
            string ticket      = string.Empty;

            if (httpContext.Request.QueryString["ticket"] != "")
            {
                ticket = httpContext.Request.QueryString["ticket"];
            }
            else
            {
                ticket = httpContext.Request.Cookies["ticket"].Value;
            }

            if (string.IsNullOrEmpty(ticket))
            {
            }
        }
Esempio n. 16
0
        protected override void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext)
        {
            var user = System.Web.HttpContext.Current.Session["User"] as UserDTO;

            if (user == null)
            {
                System.Web.HttpContext.Current.Response.Redirect("/login", true);
            }

            if (user != null)
            {
                this.User        = user;
                ViewBag.User     = user;
                ViewBag.UserName = user.UserName;
                if (user.UserName == "globaldata")
                {
                    System.Web.HttpContext.Current.Response.Redirect("/globaldata", true);
                }
            }

            base.OnAuthentication(filterContext);
        }
Esempio n. 17
0
        public void OnAuthentication(WebMvc.Filters.AuthenticationContext filterContext)
        {
            if (AuditManager.Common.ConfigUtility.IsUnderMaintenance() && !AmUtil.IsMaintenanceUser())
            {
                return;
            }

            if (filterContext.ActionDescriptor.ControllerDescriptor.ControllerName.Equals("Elmah", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            //filterContext.Principal.Identity.Name
            var usr    = filterContext.Principal.Identity.Name.ToUserIdFromDnsName();
            var wsUser = AuditManager.Rep.AmUtility.GetWsUser(usr, Model.ImDbType.Active);

            if (wsUser == null)
            {
                AuditManager.Rep.WsCreate.RequestAccessToAuditManager(string.Format("Auto Mail - User \"{0}\" doesn't exist in WorkSite table.", usr), false);
                filterContext.Result = new ViewResult {
                    ViewName = "Unauthorized"
                };
            }
        }
Esempio n. 18
0
        protected override void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext)
        {
            base.OnAuthentication(filterContext);

            //BEW DEBUG Properties.Settings.Default.debugRoute = true: If you want to actually test your encrypted link (including link expiration and whether or not it is Disabled/Received)
            //BEW DEBUG Properties.Settings.Default.ignoreExpirationDisabledReceived = true: If you just want to authorize any debug link (via decryption) AND resuse it, ignoring expiration, disabled, received

            if (Properties.Settings.Default.debugRoute && Session["AlreadyInitializedRoute"] == null)
            {
                Session["AlreadyInitializedRoute"] = true;
                //BEW DEBUG ROUTE - Set the id parameter that would be passed into the route here; i.e., just the encrypted part: "E61C33CF3700A314499952B514627DA5DD4B4D887E968B41BC6CDF66A62FE257BFF2B2299F0BD186317F7930FCFC6944F83A0C4A44390C39ACB78A32E60EDB115AB1D3CEB1E0D6208E152E3CE26DF5700ECB7EF12015159";
#if DEBUG
                //[email protected]
                //RouteData.Values["id"] = "D555440881A9D9391356C826ADF4475913F08BC6CA66C5758AD3B91D43B4C48408FD3C85D2C2DBC121DED5829579B8CBD3D15EA9C537865736833F427647CD85D8392FF8D3DC12C8DDBC1CD7F1D3A6650DD46069097648F42D0B1F5BE894685D573E79E6A932E450F743F2BFA5D09BAD";
                RouteData.Values["id"] = "7705CD8DC4C9709A2A575ED31ECED37EBBFC2FC3A13CB993D135FC7693FB2DC2FF56C008ACF85A1BC674DDBC3BCD368CD99CFE101AAE383AD935B29951199F69791DD89907E46FD9860F41C76AF83BE1D50FABE318258F68C979554888EDEA0E25A595E4C8FEACC7994BF882E3918124";
                //RouteData.Values["id"] = "7A69042157D7F3745F50C61E41CCC7A770D177B10420E3894FFC18B9B453B449E08731615366329FC6C7172DA19660EEAC419649FD3BB84C400B5B9033A9650B0144F61F61B45DB131E721D99F17BC5DC9DEF098EA4432C81B9BEE320C6360892E241173D9314B2166AF058BAE1A1120";
#elif DEBUGMASHTUN
                RouteData.Values["id"] = "219217C2E18AB6FB6EE7043D796F3709EA92D4DFAC89969567D1957BE44A3B017D868EA888A18B22232D4437FEA56296DBA10F2945753D85C83C067F7679E74658EE32DE88F177FEDA144FF5117CD6B538DA2C0905EC889D57C2D669ACE4EE4BA0746246F1C861064B2AEBCCCEA7BA26";
#else
                RouteData.Values["id"] = "CF67D6679D9F22D4389C951A5E19E9BA17C05F0760706FEED87EDF0E2F405D0B5EF386C57D51E2B24F8B2AF05CFA13B3719D7266C09384D7ED99C2B20266A03CA6E7C6E29AF7EC2CB4CD4BC8F98924FB2FADBA57D8F7495BAEC2CFBD829FC953F364CD206B9E0B442619CA4FC09FD2B7";
#endif
            }

            string id = null;
            if (RouteData.Values["id"] != null)
            {
                // When the app is initialized, we only have RouteData
                id = RouteData.Values["id"].ToString();
            }
            else if (Request.QueryString["q"] != null)
            {
                //OMG!!! MicroSUCK won't allow you to pass a route value longer than 260 characters (the old Windows MAX_PATH),
                //so when it is longer, we have to make it an old fashioned query string, which kind of ruins the MVC pattern, which purports to eliminate the need for ugly old query string params.
                id = Request.QueryString["q"].ToString();
            }
            else if (Session["id"] != null)
            {
                // After the RouteData is fully authenticated (below "AUTHORIZE STEP 3") it is stored in Session for continued use
                id = Session["id"].ToString();
            }

            // AUTHORIZE STEP 1: Let BACrypto decrypt the link and tell us if it's in the correct format
            isAuthorized = id != null && crypto.AuthenticateLink(id, out decryptedLink);
            if (isAuthorized)
            {
                if (decryptedLink != null)
                {
                    linkProperties = decryptedLink.Split('|');

                    /* AUTHORIZE STEP 2: Verify that the link is actually in the database.
                     * We need the database version anyway so we can tell if it (1) has already been used by the recipient, or (2) is expired.
                     */
                    Invitation = InvitationRepository.GetInvitation(GetLinkProperty("IMIS_ID"), decryptedLink);
                    if (Properties.Settings.Default.ignoreExpirationDisabledReceived)
                    {
                        //DEBUG Just store the RouteValue in the Session. We don't care if it's expired, received, disabled.
                        if (Session["id"] == null)
                        {
                            Session["id"] = RouteData.Values["id"];
                        }
                        isAuthorized = true;
                        return;
                    }
                    else
                    {
                        //LIVE
                        isAuthorized = Invitation != null && !(Invitation.Received || Invitation.Disabled);
                    }
                }
                else
                {
                    //ViewData["NotAuthorizedReason"] = "DEBUG ONLY - decryptedLink is null"; //BEW DEBUG ONLY
                    isAuthorized = false;
                }

                const string MSG_INVITATION_EXPIRED  = "Your invitation has expired.";
                const string MSG_INVITATION_RECEIVED = "Your invitation has already been received.";

                if (isAuthorized)
                {
                    /* AUTHORIZE STEP 3: Is the link expired? */
                    DateTime sentDateTime = new DateTime();
                    isAuthorized = (DateTime.TryParse(GetLinkProperty("SentDateTime"), out sentDateTime) && DateTime.Now.Subtract(sentDateTime).TotalDays < 3);
                    if (!isAuthorized)
                    {
                        ViewData["NotAuthorizedReason"] = MSG_INVITATION_EXPIRED;
                    }
                    else if (Session["id"] == null)
                    {
                        if (Request.QueryString["q"] != null)
                        {
                            Session["id"] = Request.QueryString["q"];
                        }
                        else
                        {
                            /*** Store the RouteData id in a Session here, after it has been fully authenticated ***/
                            Session["id"] = RouteData.Values["id"];
                        }
                    }
                }
                else if (Invitation != null)
                {
                    /* If there is a matching invitation in the database, then provide details about why it is invalid
                     * If it is disabled, just tell the user it's expired. (Don't want to say "you're uninvited".
                     * Otherwise say it is received. */
                    ViewData["NotAuthorizedReason"] = (Invitation.Disabled) ? MSG_INVITATION_EXPIRED : MSG_INVITATION_RECEIVED;
                }
            }

            if (!isAuthorized)
            {
                filterContext.Result = View("~/Views/Shared/NotAuthorized.cshtml");
            }
        }
 protected override void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext)
 {
     base.OnAuthentication(filterContext);
 }