Ejemplo n.º 1
0
        public void ProcessRequest(HttpContext context)
        {
            string user            = context.User.Identity.Name;
            bool   isAuthenticated = true;
            var    request         = context.Request;
            var    response        = context.Response;
            string devRoot         = DeveloperWebRootFolder;

            WebSupport.InitializeContextStorage(context.Request);

            if (isAuthenticated == false)
            {
                return;
            }
            try
            {
                if (request.Path.StartsWith(AuthDeveloperPrefix))
                {
                    HandleDeveloperRequest(context);
                }
            }
            finally
            {
                //InformationContext.ProcessAndClearCurrent();
            }
        }
Ejemplo n.º 2
0
        public void ProcessRequest(HttpContext context)
        {
            WebSupport.InitializeContextStorage(context.Request);
            bool isSocket = false;

            if (context.IsWebSocketRequest)
            {
                isSocket = true;
            }
            if (context.IsWebSocketRequest)
            {
                context.AcceptWebSocketRequest(HandleWebSocket);
            }
            else
            {
                context.Response.StatusCode = 400;
            }

            /*
             * WebSupport.InitializeContextStorage(context.Request);
             * try
             * {
             *  if (request.Path.StartsWith(AuthEmailValidation))
             *  {
             *      HandleEmailValidation(context);
             *  }
             * } finally
             * {
             *  InformationContext.ProcessAndClearCurrent();
             * }*/
        }
Ejemplo n.º 3
0
        public static void SetAuthenticationCookie(HttpResponse response, string validUserName)
        {
            WebSupport.InitializeContextStorage(HttpContext.Current.Request);
            string authString = EncryptionSupport.EncryptStringToBase64(validUserName);

            if (response.Cookies[AuthCookieName] != null)
            {
                response.Cookies.Remove(AuthCookieName);
            }
            HttpCookie cookie = new HttpCookie(AuthCookieName, authString);

            cookie.HttpOnly = false;
            HttpContext.Current.Response.Cookies.Add(cookie);
        }
Ejemplo n.º 4
0
        public void ProcessRequest(HttpContext context)
        {
            HttpRequest request = context.Request;

            WebSupport.InitializeContextStorage(context.Request);
            try
            {
                if (request.Path.StartsWith(AuthEmailValidation))
                {
                    HandleEmailValidation(context);
                }
            } finally
            {
                InformationContext.ProcessAndClearCurrent();
            }
        }
Ejemplo n.º 5
0
        private void HandlePersonalRequest(HttpContext context)
        {
            string       loginUrl  = WebSupport.GetLoginUrl(context);
            TBRLoginRoot loginRoot = TBRLoginRoot.GetOrCreateLoginRootWithAccount(loginUrl, true);
            bool         doDelete  = false;

            if (doDelete)
            {
                loginRoot.DeleteInformationObject();
                return;
            }
            TBAccount account     = loginRoot.Account;
            string    requestPath = context.Request.Path;
            string    contentPath = requestPath.Substring(AuthPersonalPrefixLen);

            HandleOwnerRequest(account, context, contentPath, TBCollaboratorRole.CollaboratorRoleValue);
        }
Ejemplo n.º 6
0
        public void ProcessRequest(HttpContext context)
        {
            string user            = context.User.Identity.Name;
            bool   isAuthenticated = String.IsNullOrEmpty(user) == false;
            var    request         = context.Request;
            var    response        = context.Response;

            WebSupport.InitializeContextStorage(context.Request);
            if (request.Path.StartsWith(AboutPrefix))
            {
                if (request.Path.EndsWith("/oip-layout-register.phtml"))
                {
                    ProcessDynamicRegisterRequest(request, response);
                }
                else
                {
                    HandleAboutGetRequest(context, request.Path);
                }
                return;
            }

            if (isAuthenticated == false)
            {
                return;
            }
            try
            {
                if (request.Path.StartsWith(AuthPersonalPrefix))
                {
                    HandlePersonalRequest(context);
                }
                else if (request.Path.StartsWith(AuthGroupPrefix))
                {
                    HandleGroupRequest(context);
                }
                else if (request.Path.StartsWith(AuthAccountPrefix))
                {
                    HandleAccountRequest(context);
                }
            } finally
            {
                InformationContext.ProcessAndClearCurrent();
            }
        }
Ejemplo n.º 7
0
        private void HandleGroupRequest(HttpContext context)
        {
            string            requestPath    = context.Request.Path;
            string            groupID        = GetGroupID(context.Request.Path);
            string            loginUrl       = WebSupport.GetLoginUrl(context);
            string            loginRootID    = TBLoginInfo.GetLoginIDFromLoginURL(loginUrl);
            string            loginGroupID   = TBRLoginGroupRoot.GetLoginGroupID(groupID, loginRootID);
            TBRLoginGroupRoot loginGroupRoot = TBRLoginGroupRoot.RetrieveFromDefaultLocation(loginGroupID);

            if (loginGroupRoot == null)
            {
                // TODO: Polite invitation request
                throw new SecurityException("No access to requested group: TODO - Polite landing page for the group");
                return;
            }
            InformationContext.Current.CurrentGroupRole = loginGroupRoot.Role;
            string contentPath = requestPath.Substring(AuthGroupPrefixLen + GuidIDLen + 1);

            HandleOwnerRequest(loginGroupRoot, context, contentPath, loginGroupRoot.Role);
        }
Ejemplo n.º 8
0
        public static void SetUserFromCookieIfExists(HttpContext context)
        {
            var request   = HttpContext.Current.Request;
            var encCookie = request.Cookies[AuthCookieName];

            if (encCookie != null)
            {
                try
                {
                    WebSupport.InitializeContextStorage(context.Request);
                    string userName = EncryptionSupport.DecryptStringFromBase64(encCookie.Value);
                    context.User = new GenericPrincipal(new GenericIdentity(userName, "theball"), new string[0]);
                    // Reset cookie time to be again timeout from this request
                    encCookie.Expires = DateTime.Now.AddSeconds(TimeoutSeconds);
                    context.Response.Cookies.Set(encCookie);
                } catch
                {
                    ClearAuthenticationCookie(context.Response);
                }
            }
        }
Ejemplo n.º 9
0
        private void HandleEmailValidation(HttpContext context)
        {
            string            loginUrl          = WebSupport.GetLoginUrl(context);
            TBRLoginRoot      loginRoot         = TBRLoginRoot.GetOrCreateLoginRootWithAccount(loginUrl, false);
            string            requestPath       = context.Request.Path;
            string            emailValidationID = requestPath.Substring(AuthEmailValidationLen);
            TBAccount         account           = loginRoot.Account;
            TBEmailValidation emailValidation   = TBEmailValidation.RetrieveFromDefaultLocation(emailValidationID);

            if (emailValidation == null)
            {
                RespondEmailValidationRecordNotExist(context);
                return;
            }
            StorageSupport.DeleteInformationObject(emailValidation);
            if (emailValidation.ValidUntil < DateTime.UtcNow)
            {
                RespondEmailValidationExpired(context, emailValidation);
                return;
            }
            if (emailValidation.GroupJoinConfirmation != null)
            {
                HandleGroupJoinConfirmation(context, account, emailValidation);
            }
            else if (emailValidation.DeviceJoinConfirmation != null)
            {
                HandleDeviceJoinConfirmation(context, account, emailValidation);
            }
            else if (emailValidation.InformationInputConfirmation != null)
            {
                HandleInputJoinConfirmation(context, account, emailValidation);
            }
            else
            {
                HandleAccountEmailValidation(context, account, emailValidation);
            }
        }