Пример #1
0
        /// <summary>Responde ao pedido de autenticação</summary>
        protected void Application_AuthenticateRequest(object src, EventArgs e)
        {
            Log.log("Authenticate Request.... ");
            string request = HttpContext.Current.Request.FilePath;
            bool   isAspx  = request.IndexOf(".aspx") != -1;

            if (Request.IsAuthenticated)
            {
                if (Context.User is User)
                {
                    Log.log("Context is user!");
                    return;
                }
                string name = Context.User.Identity.Name;

                object o = HttpContext.Current.Cache[name];
                if (o == null)
                {
                    User user = new User(Context.User.Identity, UserUtility.bd.getRoles(name));
                    HttpContext.Current.Cache.Add(name, user, null, DateTime.Now.AddMinutes(9), Cache.NoSlidingExpiration, CacheItemPriority.Default, new CacheItemRemovedCallback(this.UserOffline));
                    HttpContext.Current.Cache.Add("Ruler-" + user.UserId, user, null, DateTime.Now.AddMinutes(9), Cache.NoSlidingExpiration, CacheItemPriority.Default, null);
                    Context.User = user;
                    RegisterOnlineUser(user);
                    UserUtility.bd.updateLastLogin(name);
                }
                else
                {
                    User user = (User)o;
                    Context.User = user;
                    string userId = "Ruler-" + user.UserId;
                    if (HttpContext.Current.Cache[name] == null || HttpContext.Current.Cache[userId] == null)
                    {
                        HttpContext.Current.Cache.Add(name, user, null, DateTime.Now.AddMinutes(9), Cache.NoSlidingExpiration, CacheItemPriority.Default, null);
                        HttpContext.Current.Cache.Add(userId, user, null, DateTime.Now.AddMinutes(9), Cache.NoSlidingExpiration, CacheItemPriority.Default, null);
                    }
                }
                setUserSkin((User)Context.User);
            }
            else
            {
                Context.User = defaultPrincipal;
            }

            if (CheckWiki(Context.User))
            {
                Log.log("... Done!");
                return;
            }

            if (!canView() && isAspx)
            {
                OrionGlobals.forceLogin();
            }

            Log.log("... Done!");
        }
Пример #2
0
        /// <summary>Retorna o Ruler da sessão</summary>
        protected Ruler getRuler()
        {
            User user = Page.User as User;

            if (user == null)
            {
                OrionGlobals.forceLogin();
                return(null);
            }

            Chronos.Core.Ruler ruler = Universe.instance.getRuler(user.RulerId);
            if (ruler == null)
            {
                throw new AlnitakException("Ruler não existe @ PlanetControl::getRuler");
            }
            return(ruler);
        }
Пример #3
0
        /// <summary>
        /// Retorna o Ruler da sessão
        /// </summary>
        protected Ruler getRuler()
        {
            User user = Page.User as User;

            if (user == null)
            {
                OrionGlobals.forceLogin();
                throw new AlnitakException("User não está autenticado @ TravelControl::getRuler");
            }

            Ruler ruler = Universe.instance.getRuler(user.RulerId);

            if (ruler == null)
            {
                throw new AlnitakException("Ruler não existe @ TravelControl::getRuler");
            }

            return(ruler);
        }