I'm using HttpModule to capture requests to the web server. Before processing the page I'd like to check the values contained in some keys of the Request.Form collection and according to some logic change if necessary. I'd like to do this when BeginRequest event is fired. The problem is that the Request.Form collection is readonly.
I'm in a situation where a GET request is made of my server without any content-length header. After the GET request is sent the client then sends a small chunk of data (8 bytes to be exact). It's imperative to note that this data is not meant to be treated as a request body. For this reason asp.net/iis ignores it. I cannot read it and the input stream says it has a length of 0. This is the correct behaviour!
What I need to do is somehow hook into the request processing pipeline early enough to read this data and somehow append it to the request (Items?) I don't know how to do this 'correctly'. I figure I should probably create an IHttpModule to check if the request is of the type that will have this data, then somehow read it.
How would I go about this? How would I be able to read this information in from the stream? I've tried adding an event handler to HttpApplication.BeginRequest but everything I try to read the stream fails. I've read that I could potentially add a custom header using reflection (this would allow me to add a content-length header) but this feels nasty and hacky - I presume there's just a place where I can hook in and handle the reading of the stream before passing it on for further processing.
Using a Windows application I am sending a web request to a web page and getting the response back using the following code
HttpWebRequest oRequest1 = (HttpWebRequest)WebRequest.Create(url); oRequest1.ContentType = "text/xml"; using (Stream stream = oRequest1.GetRequestStream()) { stream.Write(fileBytes1, 0, fileBytes2.Length); //fileBytes1 - contains the data of first request } HttpWebResponse Response1 = (HttpWebResponse)oRequest1.GetResponse(); ->The above code works fine But I need to enhance the code to accomodate following additional scenario ->Send another request to the same web app and ->get the response back
The first request sent contains the credentials to access the web application the second request sent doesn't have credentials, it must use the credentials of first request. I am using the same (following) code for the second request too. I get an error saying that it's looking for credentials
I am trying to call a webservice that requires me to authenticate and then pass the session id returned from the authenticate method to subsequent web service calls. The session id has to be passed as HTTP request header. So I tried using the following code to add the session id to a HTTP request header:
System.Collections.Specialized.NameValueCollection headers = HttpContext.Current.Request.Headers; Type t = headers.GetType(); //get the property System.Reflection.PropertyInfo p = t.GetProperty("IsReadOnly",System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.FlattenHierarchy); //unset readonly p.SetValue(headers, false, null); //add a header headers.Add("Cookie", "SID=" + sessionId );
The header is supposed to be called "Cookie" and the SID contains the session id. The problem is the last line in the code above gives an exception saying "Operation is not supported on this platform". I am running this code on my dev machine with with Windows XP Professional Service Pack 3 and IIS 5.1. I haven't been able to find any solution to this problem after days of searching. I also tried to deploy my web app on IIS directly but had the same error.
I am using Webhandler to upload images to the server. I want to send the folder name so on that folder the images will save. I am using this URI format and got the below error.
Also I added the following line in the web.config but still having the issue.
<httpRuntime requestValidationMode="2.0" />
A potentially dangerous Request.Path value was detected from the client (?). Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: A potentially dangerous Request.Path value was detected from the client (?).
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace: [HttpException (0x80004005): A potentially dangerous Request.Path value was detected from the client (?).] System.Web.HttpRequest.ValidateInputIfRequiredByConfig() +8884233 System.Web.ValidateRequestExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +35 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184
Version
Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1
I am doing some redirecting of old url in global.asax's application_beginrequest. Redirecting works fine when getting the url's using an http get but not when using an http head request.
I created an application and implemented IHTTPHandler for all incoming request ending with ".aspx" extension.Under "ProcessRequest" module, I am creating an instance of HttpContext (with URL attributes different from my application's URL i.e. if I am working on localhost then speciying Yahoo.com as its URL) and assigning it to "context" which comes as method argument.After redirection, an error is generated. Also, the custom HTTPContext is not passed to the requested page (default.aspx, in my case.)Code is as follows.
I just updated my project to ASP.NET 4. All of a sudden, some of my HttpHandlers are giving ValidateRequest errors. This is because the user HAS to be able to put an XML string in the querystring.I know how to disable ValidateRequest on a page, but how do I do it on an HTTPHandler?
i redirect a page from http to https using http module begin request handler .i am calling webservice using ajax but it is saying webserice not defined .which otherwise works fineits work fine when rediect page in page_load instead .but i need to add function for https to http in every page. i still not know why ajax is not working when i use http module for redirect
I am trying to access the page object in module and change the hyper links urls. Page object is being access properly, but changes I am making are not effecting the output. I mean here I am changing the url to TestURL.aspx, but this is not comming. could
In IIS6 the scenario below is working perfectly.I have an HttpModule called URLRedirect which examines URLS and by using RegEx rewrites of applicable. An example is a URL "/doc47.pdf" gets redirected to docpdf.ashx?id=47 Then the docpdf.ashx used the id value and, using a database builds an application/pdf document and returns it. Since I need to validate that the user has access to the data, the first line of the ProcessRequest(HttpContext context) function is:if (context.User.Identity.IsAuthenticated) ..... This is where the problem occurs, but more details first.
On a webpage, access to which is restricted to lgged on users who meet certain criteria there is a link which allows the user to present the page as a PDF document. This is achieved by using javascript to open a popup window using the window.open("/doc47.pdf", ... ) function.This all works fine under IIS6 and under IIS7 if I change the mode to Classic. But, under IIS7 in integrated mode, the following happens.The line in doc.ashx described above raises an exception because context.User == null. But, and this is interesting, if instead of using the link that opens the popup window I instead type /doc.pdf?id=47 into the address bar, the PDF document displays correctly.So this indicates to me that the URLRedirect Module is somehow losing the logged on user information.
regarding one issue I am facing. I created a httpmodule for hadling the unhandled errors and I need to log those errors using log 4 net in database.Everting working fine but I am not getting any error information once the error was hadled and I need that info too. I want to make it as a centralize module which can trap all errors and log those errors.How call application_error event of httpmodule from catch block...so that I can log that info there and I no need log in every catch block..
am trying to write an HttpModule that will work in IIS7 with integrated pipeline mode AppPool. Within this module I need to access Session variables and to be able to capture the Session Start and End events. I have found a couple of articles on this topic that indicate the need to modify the behavior of the HttpHandler in PostAcquireRequestState to force the Session for the context to be initialized. The article I am using as a template is posted here:[URL]In my case I am getting the following error:
[NullReferenceException: Object reference not set to an instance of an object.] System.Web.PipelineModuleStepContainer.GetEventCount(RequestNotification notification, Boolean isPostEvent) +30 System.Web.PipelineStepManager.ResumeSteps(Exception error) +1112 System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) +113 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +616
I believe that this error implies a problem with attempting to attach an event handler multiple times. I am aware that the modules Init function can be called more than once and have set a static initialization flag which ensures that I will only ever attach the event handler once.In the most condensed form my code is as follows:
public class HttpModule : IHttpModule, IRequiresSessionState
when i browse the page with firefox and click on the input Request.Params["btnshoppingCart"] != null or Request.Form["btnshoppingCart"] != null is statisfied.
When i browse the same page with internet explorer 8 and click on the same input Request.Params["btnshoppingCart"] != null or Request.Form["btnshoppingCart"] != null is not satisfied. When i used the watch i saw that there is no key by the name of "btnshoppingCart" in either Request.Form or Request.Params if input is clicked from internet explorer. However when it is clicked from firefox there is value "shoppingCart" inside Request.Form and Request.Params against "btnshoppingCart" key. One more strange thing that i observed was that are two keys "btnshoppingCart.x" and "btnshoppingCart.y" inside both Request.Form and Request.Params whenver clicking is done from both internet explorer and firefox. This is happening against all inputs of type image irrespective if the input is present inside a html form or not. Forms are created like this
<% using (Html.BeginForm("Action", "Controller", FormMethod.Post)){%>
The version of internet explorer is 8.0 and firefox is 3.6.6
i have web application which can be accessible by [URL] but I would like to create a url which does not have any query string parameter. this should be accessible by [URL] (e.g athar is client name) I have download the Intelligencia.UrlRewriter.dll from the internet. but when I run this i am getting error could not found assemply.
I've tried to implement two different solutions that use either and HttpModule or and HttpHandler to do URLRewriting for me. These work great on IIS 7 within my local development environment in Integrated and Classic modes. Currently the production server is running IIS 6.0 on a shared hosting environment. It appears that the request at least hits both the Module and Handler as the URL above redirect to the particular friendly url, but it doesn't redirect and hit hte Module or Handler again. Instead I get a 404 error for the friendly URL.
I want to save each request to the website. In general I want to include the following information: User IP, The web site url, user-if-exist, date-time. Response time, response success-failed status. Is it reasonable to collect the 1 and 2 in the same action? (like same HttpModule)? Do you know about any existing structure that I can follow that track every request/response-status to the website? The data need to be logged to sql server.
I have written a HttpModule for our site which generally accepts requests and checks for specific file extensions as well as the value of a specific session variable. Is it possible to detect the first request in a session?