Esempio n. 1
0
        private static SessionStateBehavior?GetSessionStateBehavior(WebPageExecutingBase page, ConcurrentDictionary <Type, SessionStateBehavior?> cache)
        {
            return(cache.GetOrAdd(page.GetType(), type =>
            {
                SessionStateBehavior sessionStateBehavior = SessionStateBehavior.Default;
                var attributes = (RazorDirectiveAttribute[])type.GetCustomAttributes(typeof(RazorDirectiveAttribute), inherit: false);
                var directiveAttributes = attributes.Where(attr => StringComparer.OrdinalIgnoreCase.Equals("sessionstate", attr.Name))
                                          .ToList();

                if (!directiveAttributes.Any())
                {
                    return null;
                }
                if (directiveAttributes.Count > 1)
                {
                    throw new InvalidOperationException(WebPageResources.SessionState_TooManyValues);
                }
                var directiveAttribute = directiveAttributes[0];
                if (!Enum.TryParse <SessionStateBehavior>(directiveAttribute.Value, ignoreCase: true, result: out sessionStateBehavior))
                {
                    var values = Enum.GetValues(typeof(SessionStateBehavior)).Cast <SessionStateBehavior>().Select(s => s.ToString());
                    throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, WebPageResources.SessionState_InvalidValue,
                                                              directiveAttribute.Value, page.VirtualPath, String.Join(", ", values)));
                }
                return sessionStateBehavior;
            }));
        }
Esempio n. 2
0
 /// <summary>
 /// Require use of writable session state.
 /// </summary>
 /// <param name="request">The HTTP request.</param>
 /// <param name="stateBehavior">Session state behavior to use</param>
 public static void SetSessionStateBehavior(this IHttpRequest request, SessionStateBehavior stateBehavior)
 {
     if (stateBehavior != SessionStateBehavior.Default)
     {
         request.SetHeader(ArasHeaders.SessionStateBehaviorHeader, ArasHeaders.SessionStateBehaviorToString(stateBehavior));
     }
 }
Esempio n. 3
0
 public RouteHandler(IWorkContextAccessor workContextAccessor, IRouteHandler routeHandler, SessionStateBehavior sessionStateBehavior, Func <IDictionary <string, object>, Task> pipeline)
 {
     _workContextAccessor  = workContextAccessor;
     _routeHandler         = routeHandler;
     _sessionStateBehavior = sessionStateBehavior;
     _pipeline             = pipeline;
 }
 public AspNetMvcControllerFactory(IKernel kernel, bool autoCreateLifestyleScopes, SessionStateBehavior sessionStateBehaviour, List <Assembly> controllerAssemblies)
 {
     this.kernel = kernel;
     this.sessionStateBehaviour     = sessionStateBehaviour;
     this.autoCreateLifestyleScopes = autoCreateLifestyleScopes;
     this.controllerCandidateTypes  = controllerAssemblies.SelectMany(x => x.ExportedTypes).ToList();
 }
Esempio n. 5
0
        /// <summary></summary>
        public SessionStateBehavior GetControllerSessionBehavior(RequestContext requestContext, string controllerName)
        {
            SessionStateBehavior state = _inner.GetControllerSessionBehavior(requestContext, controllerName);

            if (state != SessionStateBehavior.Default)
            {
                return(state);
            }
            return(DefalutBehavior);
        }
        public static IHttpRoute MapHttpRoute(this HttpRouteCollection routes, string name, string routeTemplate,
                                              object defaults, object constraints, SessionStateBehavior sessionBehavior, UserSessionRole[] requiredRoles)
        {
            var route = routes.CreateRoute(routeTemplate, defaults, constraints);

            route.SetSessionStateBehavior(sessionBehavior);
            route.SetRequiredSessionRoles(requiredRoles);
            routes.Add(name, route);

            return(route);
        }
Esempio n. 7
0
        public void GetControllerSessionBehaviorReturnsDefaultForNullControllerType()
        {
            // Arrange
            var factory = new DefaultControllerFactory();

            // Act
            SessionStateBehavior result = factory.GetControllerSessionBehavior(null, null);

            // Assert
            Assert.Equal(SessionStateBehavior.Default, result);
        }
Esempio n. 8
0
        public void GetControllerSessionBehaviorReturnsDefaultForControllerWithoutAttribute()
        {
            // Arrange
            var factory = new DefaultControllerFactory();

            // Act
            SessionStateBehavior result = factory.GetControllerSessionBehavior(null, typeof(object));

            // Assert
            Assert.Equal(SessionStateBehavior.Default, result);
        }
Esempio n. 9
0
        public void GetControllerSessionBehaviorReturnsAttributeValueFromController()
        {
            // Arrange
            var factory = new DefaultControllerFactory();

            // Act
            SessionStateBehavior result = factory.GetControllerSessionBehavior(null, typeof(MyReadOnlyController));

            // Assert
            Assert.Equal(SessionStateBehavior.ReadOnly, result);
        }
        public IEnumerable <RouteDescriptor> GetRoutes()
        {
            var displayPathsPerArea = _blueprint.Controllers.GroupBy(
                x => x.AreaName,
                x => x.Feature.Descriptor.Extension);

            foreach (var item in displayPathsPerArea)
            {
                var areaName            = item.Key;
                var extensionDescriptor = item.Distinct().Single();
                var displayPath         = extensionDescriptor.Path;
                SessionStateBehavior defaultSessionState = SessionStateBehavior.Default;
                //Enum.TryParse(extensionDescriptor.SessionState, true /*ignoreCase*/, out defaultSessionState);

                yield return(new RouteDescriptor
                {
                    Priority = -10,
                    SessionState = defaultSessionState,
                    Route = new Route(
                        "Admin/" + displayPath + "/{action}/{id}",
                        new RouteValueDictionary {
                        { "area", areaName },
                        { "controller", "admin" },
                        { "action", "index" },
                        { "id", "" }
                    },
                        new RouteValueDictionary(),
                        new RouteValueDictionary {
                        { "area", areaName }
                    },
                        new MvcRouteHandler())
                });

                yield return(new RouteDescriptor
                {
                    Priority = -10,
                    SessionState = defaultSessionState,
                    Route = new Route(
                        displayPath + "/{controller}/{action}/{id}",
                        new RouteValueDictionary {
                        { "area", areaName },
                        { "controller", "home" },
                        { "action", "index" },
                        { "id", "" }
                    },
                        new RouteValueDictionary(),
                        new RouteValueDictionary {
                        { "area", areaName }
                    },
                        new MvcRouteHandler())
                });
            }
        }
Esempio n. 11
0
        internal static string SessionStateBehaviorToString(SessionStateBehavior behavior)
        {
            switch (behavior)
            {
            case Client.SessionStateBehavior.ReadOnly:
                return("readonly");

            case Client.SessionStateBehavior.SwitchToInitial:
                return("switch_to_initial");

            case Client.SessionStateBehavior.Writeable:
                return("required");
            }
            return("undefined");
        }
        public SessionStateBehavior GetControllerSessionBehavior(System.Web.Routing.RequestContext requestContext, string controllerName)
        {
            SessionStateBehavior SSB = SessionStateBehavior.Default;

            switch (controllerName.ToLower())
            {
            case "sessionless":
                SSB = SessionStateBehavior.Disabled;
                break;

            default:
                SSB = SessionStateBehavior.Default;
                break;
            }
            return(SSB);
        }
Esempio n. 13
0
 public SessionStateBehavior GetControllerSessionBehavior(RequestContext requestContext, string controllerName)
 {
     SessionStateBehavior state = new SessionStateBehavior();
     return state;
 }
 public static IHttpRoute MapHttpRoute(this HttpRouteCollection routes, string name, string routeTemplate, object defaults, SessionStateBehavior behavior)
 {
     return(MapHttpRoute(routes, name, routeTemplate, defaults, null, behavior));
 }
 public override void SetSessionStateBehavior(SessionStateBehavior sessionStateBehavior)
 {
     _httpContext.SetSessionStateBehavior(sessionStateBehavior);
 }
Esempio n. 16
0
 public RouteHandler(IWorkContextAccessor workContextAccessor, IRouteHandler routeHandler, SessionStateBehavior sessionStateBehavior)
 {
     _workContextAccessor  = workContextAccessor;
     _routeHandler         = routeHandler;
     _sessionStateBehavior = sessionStateBehavior;
 }
Esempio n. 17
0
 public RouteHandler(IWorkContextAccessor workContextAccessor, IRouteHandler routeHandler, SessionStateBehavior sessionStateBehavior, Func<IDictionary<string, object>, Task> pipeline) {
     _workContextAccessor = workContextAccessor;
     _routeHandler = routeHandler;
     _sessionStateBehavior = sessionStateBehavior;
     _pipeline = pipeline;
 }
Esempio n. 18
0
 public SessionStateAttribute(SessionStateBehavior behavior)
 {
     Behavior = behavior;
 }
Esempio n. 19
0
 public ActionSessionStateAttribute(SessionStateBehavior behavior)
 {
     this.Behavior = behavior;
 }
 public override void SetSessionStateBehavior(SessionStateBehavior sessionStateBehavior)
 {
     throw new NotSupportedException(NotSupportedMessage);
 }
Esempio n. 21
0
 public void SetSessionStateBehavior(SessionStateBehavior sessionStateBehavior)
 {
     httpContext.SetSessionStateBehavior(sessionStateBehavior);
 }
 // Saves the specified session state behavior in the route's DataTokens dictionary.
 private static void SetSessionStateBehavior(this IHttpRoute route, SessionStateBehavior behavior)
 {
     route.DataTokens["SessionStateBehavior"] = behavior;
 }
Esempio n. 23
0
 public virtual void SetSessionStateBehavior(SessionStateBehavior sessionStateBehavior)
 {
     throw new NotImplementedException();
 }
 public static IHttpRoute MapHttpRoute(this HttpRouteCollection routes, string name, string routeTemplate, object defaults, SessionStateBehavior sessionBehavior, UserSessionRole[] requiredRoles)
 {
     return(MapHttpRoute(routes, name, routeTemplate, defaults, null, sessionBehavior, requiredRoles));
 }
 public override void SetSessionStateBehavior(SessionStateBehavior sessionStateBehavior)
 {
     throw new NotSupportedException(NotSupportedMessage);
 }
        public void GetRoutes(ICollection <RouteDescriptor> routes, string areaName)
        {
            var displayPathsPerArea = new List <string>()
            {
                areaName
            };

            //foreach (var item in displayPathsPerArea)
            //{
            // var areaNameTmp = item;
            var extensionDescriptors = displayPathsPerArea.Distinct();

            var displayPaths = new System.Collections.Generic.HashSet <string>();

            foreach (var extensionDescriptor in extensionDescriptors)
            {
                var displayPath = extensionDescriptor;

                if (!displayPaths.Contains(displayPath))
                {
                    displayPaths.Add(displayPath);

                    SessionStateBehavior defaultSessionState = SessionStateBehavior.Default;
                    // Enum.TryParse(extensionDescriptor.SessionState, true /*ignoreCase*/, out defaultSessionState);


                    //routes.Add(new RouteDescriptor
                    //{
                    //    Priority = -10,
                    //    SessionState = defaultSessionState,
                    //    Route = new System.Web.Routing.Route(
                    //        "Admin/" + displayPath + "/{action}/{id}",
                    //        new RouteValueDictionary {
                    //            {"area", areaName},
                    //            {"controller", "admin"},
                    //            {"action", "index"},
                    //            {"id", ""}
                    //        },
                    //        new RouteValueDictionary(),
                    //        new RouteValueDictionary {
                    //            {"area", areaName}
                    //        },
                    //        new MvcRouteHandler())
                    //});

                    routes.Add(new RouteDescriptor
                    {
                        Name         = areaName + "Route",
                        Priority     = -10,
                        SessionState = defaultSessionState,
                        Route        = new System.Web.Routing.Route(
                            displayPath + "/{controller}/{action}/{id}",
                            new RouteValueDictionary {
                            { "area", areaName },
                            { "controller", "home" },
                            { "action", "index" },
                            { "id", "" }
                        },
                            new RouteValueDictionary(),
                            new RouteValueDictionary {
                            { "area", areaName }
                        },
                            new MvcRouteHandler())
                    });
                }
            }
            //}
        }
Esempio n. 27
0
		public override void SetSessionStateBehavior(SessionStateBehavior sessionStateBehavior)
		{
			//TODO Missing SetSessionStateBehavior for HttpListenerContext
		}
 public override void SetSessionStateBehavior(SessionStateBehavior sessionStateBehavior)
 {
     this._context.SetSessionStateBehavior(sessionStateBehavior);
 }
 public virtual void SetSessionStateBehavior(SessionStateBehavior sessionStateBehavior) {
     throw new NotImplementedException();
 }
Esempio n. 30
0
 public RouteHandler(IWorkContextAccessor workContextAccessor, IRouteHandler routeHandler, SessionStateBehavior sessionStateBehavior)
 {
     _workContextAccessor = workContextAccessor;
     _routeHandler = routeHandler;
     _sessionStateBehavior = sessionStateBehavior;
 }
Esempio n. 31
0
        public void SetSessionStateBehavior(SessionStateBehavior sessionStateBehavior) {
            if (_notificationContext != null && _notificationContext.CurrentNotification >= RequestNotification.AcquireRequestState) {
                throw new InvalidOperationException(SR.GetString(SR.Invoke_before_pipeline_event, "HttpContext.SetSessionStateBehavior", "HttpApplication.AcquireRequestState"));
            }

            SessionStateBehavior = sessionStateBehavior;
        }
Esempio n. 32
0
 /// <summary>
 /// Sets the type of session state behavior that is required to support an HTTP request.
 /// </summary>
 /// <param name="sessionStateBehavior">One of the enumeration values that specifies what type of session state behavior is required.</param>
 public override void SetSessionStateBehavior(SessionStateBehavior sessionStateBehavior)
 {
     this.SessionStateBehavior = sessionStateBehavior;
 }
 public override void SetSessionStateBehavior(SessionStateBehavior sessionStateBehavior)
 {
     _httpContext.SetSessionStateBehavior(sessionStateBehavior);
 }
 public SessionForWebApi(string apiUrl, string sessionStateMode)
 {
     _apiUrl = apiUrl;
     _sessionStateBehavior = GetBehavior(sessionStateMode.ToLower());
 }
Esempio n. 35
0
		public void SetSessionStateBehavior (SessionStateBehavior sessionStateBehavior)
		{
			SessionStateBehavior = sessionStateBehavior;
		}
 public SessionStateAttribute(SessionStateBehavior behavior)
 {
     Behavior = behavior;
 }
    public static IHttpRoute MapHttpRoute(this HttpRouteCollection routes, string name, string routeTemplate, object defaults, object constraints, SessionStateBehavior behavior)
    {
        var route = routes.CreateRoute(routeTemplate, defaults, constraints);

        SetSessionStateBehavior(route, behavior);
        routes.Add(name, route);

        return(route);
    }
 /// <summary>
 /// Initializes a new instance of the <see cref="StorefrontSessionStateAttribute"/> class.
 /// </summary>
 /// <param name="behavior">The behavior.</param>
 public StorefrontSessionStateAttribute(SessionStateBehavior behavior)
 {
     this.Behavior = behavior;
 }
Esempio n. 39
0
		public virtual void SetSessionStateBehavior (SessionStateBehavior sessionStateBehavior)
		{
			NotImplemented ();
		}
Esempio n. 40
0
 public void SetSessionStateBehavior(SessionStateBehavior sessionStateBehavior)
 {
     SessionStateBehavior = sessionStateBehavior;
 }
 public override void SetSessionStateBehavior(SessionStateBehavior sessionStateBehavior)
 {
 }
 public ActionSessionStateAttribute(SessionStateBehavior behavior)
 {
     this.Behavior = behavior;
 }
 public override void SetSessionStateBehavior(SessionStateBehavior sessionStateBehavior)
 {
     _inner.SetSessionStateBehavior(sessionStateBehavior);
 }
 public void SetSessionStateBehaviour(SessionStateBehavior sessionState)
 {
     this.sessionStateBehaviour = sessionState;
 }
Esempio n. 45
0
 public override void SetSessionStateBehavior(SessionStateBehavior sessionStateBehavior) {
 }
 public override void SetSessionStateBehavior(SessionStateBehavior sessionStateBehavior)
 {
     _inner.SetSessionStateBehavior(sessionStateBehavior);
 }