Custom Principal Reverting To GenericPrincipal On New Requests?
Feb 3, 2011
I'm trying to implement a custom principal and custom identity in a .NET MVC website. I've created a custom principal class which inherits from IPrincipal and a custom identity which inherits from IIdentity.
When a user logs in I set both Thread.CurrentPrincipal and HttpContext.Current.User to my custom principal. When I view either through the debugger the values are set with all the properties.
However once the request is complete and I try and request any other pages both Thread.CurrentPrincipal and HttpContext.Current.User are of type System.Security.Principal.GenericPrincipal and not my custom principal.
Do I need to do anything "extra" to get my custom principal out of the thread or HttpContext?
I have a web site that is using windows authentication. 'Enable anonymous access' is unchecked. It works when I call it through Visual Studio but when I put the site on the server I get the following error:
Unable to cast object of type 'System.Security.Principal.GenericPrincipal' to type 'System.Web.Security.RolePrincipal'.
I have an interesting scenario. Here is what I want to do:1. Map all requests to a custom IHttpHandlerFactory implementation. This is easy enough to do by setting up a * mapping.2. Have requests for .aspx though still go through the default PageHandlerFactory (I think that is what it is called), basically be handled as normal.Is this possible in ASP.NET 4 using IIS 7?My use case is that we are building an RESTful application of sorts that will be serving data back in different formats based on the file extension specified on the url. So for example .xml will be an xml format of the data while html serves an html format.We are using an MVC framework to accomplish this and have this piece all figured out.
I was wondering what the best way is to replace the genericPrincipal with my own CustomGenericPrincipal. At the moment I have something like this but I aint sure if it's correct.
protected void Application_AuthenticateRequest(Object sender, EventArgs e) { HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName]; if (authCookie != null) { FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value); var identity = new CustomIdentity(authTicket); var principal = new CustomPrincipal(identity); Context.User = principal; } else { //Todo: check if this is correct var genericIdentity = new CustomGenericIdentity(); Context.User = new CustomPrincipal(genericIdentity); } }
I need to replace it because I need a Principal that implements my ICustomPrincipal interface because I am doing the following with Ninject:
There are a couple of things going on in this post:
1. The DropDownList (DDL) reverts back to index = 1 on postback (this has been solved, post #10) 2. Use of General Lists to populate the DropDownList (Post# TBD)
I have a series of DropDownLists (DDLs) one depending on the other for its selection value. The first one specifies the table name. On the SelectedIndexChanged event of the table name DDL the second DDL is populated with a list of field names contained in that table. And the third DDL with unique values contained in the selected field (In case you are wondering I am building a custom query tool).
The problem is that the Field names DDL, after selecting a new field, reverts to the second field listed in the table, something to do with the postback I would presume. The interesting thing is that it does not happen for the Table name DDL, though I am doing something a trifle bit different there.
I'll include the code for the three DDLs and the two SelectedIndexChanged events.
What's the simplest and most effective way to selectively redirect HTTP requests to your ASP.NET page to its HTTPS equivalent? For example, if my page site URL is [URL], I want to redirect some (or all) page requests to [URL] What's the easiest way to do that?
I have a page where I have a button and a read only text box, and the button uses javascript to open a popup window with a date picker on it, which is used to set the text box. Here is my button code:
've programmatically created a listview, for displaying images. When you click on the download the ItemCommand is fired, and the browser sends the user the image as a binary response, using the following:
I have restored a database from the .bak file on live server.But it keeps creating error in log and I checked it through sql server 2005
management tool . I found the folloing error :"the activate proc[dbo].[procname] running on queue databasename.dbo. storedprocedurename output the following 'Cannot execute as the database prinicpal "dbo" does not exist,this type of principal cannot be impersonated,or you do not have permission".
And the log file size is increasing with a great pace and I need to delete the log files mannualy as it reaches the size of 90gb in few days.
But if I restore the same .bak on my local system then it does not create the same error log.
In my database I have boolean column to declare if something is 'active'. In my web application I would only like one item to be able to have the 'active' status at once.
Therefore I have a radio button list in my aspx page to force the user to select one item. I know it is easy to set the selected item to true through my SQL update statement, but how do I automatically set everything else back to false/null!?
I have experienced some troubles when using the IIS server at my workstation with Windows 7. This is a development machine and I don't need to use it as a production server or anything, but for some tests it's quite usefull to see what happens when a lot of requests comes concurrently (in this case even in the same session).
I have learned that with my edition of Windows 7, the limit of requests is 10, but I thought it only means the limit of requests that can be served at any point of time. What I am experiencing instead, is that after firing 10 requests one by one, if the first one didn't complete before the last one was fired, it never completes. The whole IIS is dead, no further requests are put in the worker process queue (there are already 10 requests there hanging so it kinda makes sense) and the only way to go on is to restart.
Is this a standard behavior that cannot be changed on Windows 7 and does firing 10 requests really have to kill IIS (or at least the current worker process) ? Is there some way to change the configuration to fix it (without compromising the setup by creating bunch of worker processes etc.) ?
Let's imaging there are 2 pages on the web site: quick and slow. Requests to slow page are executed for a 1 minute, request to quick 5 seconds.Whole my development career I thought that if 1st started request is slow: he will do a (synchronous) call to DB... wait answer... If during this time request to quick page will be done, this request will be processed while system is waiting for response from DB.[URL] One instance of the HttpApplication class is used to process many requests in its lifetime. However, it can process only one request at a time. Thus, member variables can be used to store per-request data.Does it mean that my original thoughts are wrong?Could you please clarify what they mean? I am pretty sure that thing are as I expect...
When I open my page in Chrome and use the Resource Tracker, at the bottom of the list of requests, there are two GET requests to the aspx file. They take about 2 seconds each. Each request also causes a warning:
Resource interpreted as image but transferred with MIME type text/html.
why a page may be requesting itself, and why it is trying to use it as an image?
we are using the WCF service and hosted using a console application, now we are using LoadRunner and hitting it concurrently
Where giving 50 hits at a time few requests (26) gets completed successfully and remaining gives error TCP error code 10061: No connection could be made because the target machine actively refused it.
I have developed some ASP.NET server controls which include their own javascript and css files. A lot of these controls use jQuery extensions which, as you know, often include their own css files.
I'm using Telerik's RadScript manager which combines the javascript like a boss. However, I'm using the AjaxToolkit's ClientCssResource attribute to include the css files in my server controls, and I have noticed that the CSS files are not getting combined at all. My pages have 10-15 WebResource.axd requests for css files for my server controls.
Everything I find only is about combining javascript, and nothing tells me how I can combine the CSS files. Does anyone know if there is a way to combine the CSS dynamically (I don't want to manually combine as each page might use a different subset of the server controls)?
i am planning to host my all images from another domain which is cookiless but i dont want to alter my all image locations can i do this without changing image locations ?
And immediately after you hit any other page that this session ID would be passed to, doesn't matter if it does anything, let's call it Test.aspx. The sequence for loading is like so.
I guess my question is how do I disable this feature. I understand it's useful to have so that session state can be more predictable, however in my case a long running reports page load is killing users' ability to multitask.
I am calling a web service in my aspx page. the web service (written in java) is acting as a middleware between my system and another system (Siebel) to which I send services and get response for these services. some requests are synchronous. Sometimes when invoking a method the response takes a long time to respond, so a time out exception is thrown.
The problem is that the web service is receiving the same request many times despite I am calling it only once.In my log file and database entries it is clear that the request is called only once. but in the middleware and Siebel side they are receving four or five requests for the same request sent by me.
Is this a bug in asp.net. is it possible that the server where my application is deployed is sending the request many times when not getting the response.Note: iam using Visual studion 2005. the application is deployed to windows server 2003.Iam not discussing the problem of time out. iam asking about the duplicate issue.
I am trying to create a 404 handling page but I am now stuck with the page only working for .aspx files, which isn't really what I need.I am running on IIS6.The site has a wildcard mapping,for extensionless URLs.All requests go through Application_BeginRequest in Global.asax but not all errors go through Application_Error.Is there a way where I can get the Application_Error to raise for non .aspx files?