Session Null In IRouteHandler.GetHttpHandler With Asp Routing
Jun 18, 2010
I'm trying to get Session enabled in the GettHttpHandler method of my IRouteHandler classes but session is always null. Could someone tell me what I'm doing wrong? In global.asax I have
RouteTable.Routes.Add("All", new Route("{*page}", new MyRouteHandler()));
The MyRouteHandler class where Session is null looks like this:
public class MyRouteHandler : IRouteHandler, IRequiresSessionState
{
public System.Web.IHttpHandler GetHttpHandler(RequestContext requestContext)
{
string test = HttpContext.Current.Session["test"].ToString();
return BuildManager.CreateInstanceFromVirtualPath("~/Page.aspx", typeof(Page)) as Page;
}
}
I made a small test app that shows the problem. Could someone tell me what I'm doing wrong?
I am having session null on url routing , I searched the net all solutions are mostly for asp.net 3.5 , am using 4.0.... i dont have modules tag in web.config , i've got httpmodules which doesnt have that property.
I have a problem with a SessionVariable. I will explain what is happening:
1. From the default.aspx I send Session["LoginByAdmin"] = "Dummy"; and then redirect to this page where I have the code below. So the Page_Load sees that this Session["LoginByAdmin"] != null and enter this page. This works fine !
2. In the Page_Load, I later fill a ListBox1 with foldernames.
3. With Button1_Click1, I will now delete the choosen Folder in the ListBox1 wich works fine the first time and the ListBox updates the new existing folders in the ListBox. (I have wrapped this inside an updatepanel)
The problems comes now when I try to delete a choosen folder in the ListBox1 the second time in a row. When I select a Folder in the ListBox1 and now Press Button1, I will be redirected to "Default.aspx". This meens that this code is running: (That meens that Session["LoginByAdmin"] == null and I have not set this to null anywhere. This is my big question how this variable can be = null here?
if (Session["LoginByAdmin"] == null) Response.Redirect("Default.aspx"); break;
I have some cascading dropdownlists using the ajax toolkit I have a set up datatables in an xsd file. Then use these in a webservice to populate all the fields ... this all works great but now i need to pass an additional paramter to the first dropdownlist ( a date) but don't know how to do this? The method is below...
[Code]....
The other code is:
[Code]....
The first change would be to the tableadapter to add a param to the code i.e
AuditWebDS.TeamsDataTable teams = teamsAdapter.GetTeams(calldate);
but how do i get the calldate param to the webservice method... i tried a session variable but it comes up with session is null ? Is there another better way?
So I've read quite a few posts about how to do this, and it's still getting me. I'm trying to control access to a directory, but I continue to get a null session error. I'm doing my check in PostAcquireRequestState
[Code]....no matter where I put this, my session always comes back null. I am using IRequireSessionState on the class as well. Am I pulling the context wrong?
I am using URL Routing for display user profiles. I am using master page and child pages. The profile page is a child page and the master page has a login status control. When I login (say user x) through the modal popup which is in the master page itself, i can browse the site with smoothly and reach the routed page. When I log out from the routed page using the login status i get redirected to my home page as required as my login status also is logged out. If i login from this homepage now with another username say y, i get logged in successfully.
The problem is that when I again use the routed to get to the routed page, I get the previous user x still logged in. When i come to homepage I see user y logged in. So I have two sessions working; one in the routed page, and other in the whole of the website.
I am using URL Routing to route user to his profile page, which is a child page. Now the problem is that all the images, javascripts references are distorted when i user the url to reach that page whether logged in or not logged in (both the cases). But after reaching this page when i login from this page thru my modal popup login control, all the references seem to work fine. It is to be noted that i am still in that same page which i reached after url routing. So upon logging from here the whole page works and displays fine.
How come the references are automatically adjusted when i am logging in from this page and are not referenced when i log in from other page and route here or when i am logged out?
Global.asax code:
void Application_Start(object sender, EventArgs e) { RegisterRoutes(RouteTable.Routes); } public static void RegisterRoutes(RouteCollection routes) { routes.Add("UseridRoute", new Route ( "profile/{user}", new CustomRouteHandler("~/UserProfile.aspx") )); }
I apologize if this question has been asked prior, but I hunted around for about 3 hours today looking for some information. I have taken our existing application and converted it to use both Web Forms and MVC. This application uses multiple modulessuch as Products, Orders, Administration, etc... Each one of those is a web application and a hybrid that is copied into the main application at build time. We are using the Composite Web Application Block to handle our modules and IoC. I have created a Controller Factory that inherits the DefaultControllerFactory and overrides the GetControllerInstance method. However, I commented this out and it still gives the same problem. That problem being that when the controller is in an action, the Session is null. From what I understand, the Handler implements IRequiresSessionState, so the session should not be null. I have tried it out in a smaller, non-hybrid application and the Session is not null. Therefore, it is something that I am missing in the application that I have converted. If anyone has any information on what I might be doing wrong,
I've been using the session array to store a state variable for my webpart... so I have a property like this:
public INode RootNode { get { return this.Context.Session["RootNode"] as INode; } set { this.Context.Session["RootNode"] = value as object; } }
This usually works fine. I've discovered that sometimes, the context.session variable will be null.
I'd like to know what are the conditions that cause the session to be null in the first place, and whats the best way to persist my object when this happens? Can I just assign a new HttpSessionState object to the context, or does that screw things up?
Edit: Ok, so its not just the session that is null... the whole context is screwed up. When the webpart enters the init, the context is fine... but when it reaches the dropbox selectedindexchange postback event (the dropbox contains node id's to use to set the rootnode variable), the context contains mostly null properties.
also, it only seems to happen when certain id's are selected. This looks more like some kind of weird bug on my end than a problem with my understanding of the session.
If I create an ASP.NET Web Application project and then add an ASP.NET MVC 2 to it using the default routes defined like so
routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { action = "Index", id = UrlParameter.Optional } );
The Session object is NULL when I try and access it in the action methods of the controllers. If I change my routes to this.
routes.MapRoute( "Default", // Route name "{controller}.aspx/{action}/{id}", // URL with parameters new { action = "Index", id = UrlParameter.Optional } );
Everything works just fine. For whatever reason having the .aspx extension allows for session to be used, but the later doesn't. I'm using .NET 3.5 for everything.
I'm populating an object model with a linq query. The model looks like this:
MyModel{ DateTime AppointDate {get; set;} int TotalAppoints {get; set;} int AppointDuration {get; set;} }
The linq-to-sql query looks like that:
public static GetAppointsFromDB(params){ var MyQuery = from....where... select new MyModel{ AppointDate = ..., TotalAppoints = ..., AppointDuration =...}; return MyQuery as MyModel;}
In the master page, I'm looking to load the result of this query in the session like this:
if (Session["Appoints"] == null) {Session["Appoints"] = GetAppointsFromDB(...);}
When I run with the code, the session is always null. I added this line a second time, just right after, and the query runs again. When I'm looking to use the session at some other point in the code, it is null too there too. The query works because when I put a breakpoint on the return statement, I see the object properly filled.
I have an IHttpHandler that implements IRequiresSessionState. Everything works fine on most servers but there are 2 servers (one IIS 7.0 and one IIS 7.5) that give me null sessions. Aspx pages are fine on every server. I've searched for hours and failed to find anything that is not related to IRequiresSessionState.
I need to pass some values around using session state. My approach is to first check if my session variable is null and if it is not, then proceed with my C# logic. Is that correct? Will my Session variable ever contain garbage in it, like a corrupted string? Or will I be guaranteed that it is null if not explicitly set. if(Session["MyVariable"]!=null { // Do some logic }
I have an app that worked perfectly in development (Visual Studio 2008 Dev Server/Vista), was setup to use cookieless sessions in the web.config, which worked fine. Now rolled out into production (win2003/IIS6) configured as a Virtual Directory. But I'm having Null session issues after a button click. The problem doesnt persist in FF but in IE8. I tried to change session state to cookies and cookieless (InProc) with no go. [Code]....
In certain pages when i try to rediect to a perticular page the Session automaically gets assigned to null, have no idea why is this happening.-No where I'm using Session.Remove or Session.RemoveAll.-Also not even using EnableSessionState="true" or "false" as by default it will always be true, I know...
i'm storing in HttpContext.Current.Session current user, SiteUser is single-tone class that presents current active siteuser, and when he logged i'm creating new SiteUser() in controller and in constructor adding him to the session:
[Code]....
then, with every request to the server services i'm check is user available in session:
[Code]....
otherwise i'm generate non-auth-user exception and redirect him to the logon page. but sometimes HttpContext.Current.Session[sessionKey] is null, but HttpContext.Current.Session doesn't null and FormsAuthenticationTicket is available and Expired property is also false. can somebody help me, why HttpContext.Current.Session[sessionKey] can be null?UPDi have downloaded symbol tables of source .NET Framework and set breakpoints at SessionStateItemCollection on changing collection items. and i resolved some mistakes:1) all collection items are null — "culture" is setting up after2) it happens at the session end eventi can't understand how it can be, because at web.config session timeout is set 20