Intercept What's Being Written To HttpResponse.OutputStream

Feb 17, 2010

I am working on a tool which audits access to existing web application. Existing app does not have any hooks in place, but my plan is to inject an IHttpModule by modifying web.config and log whatever I need to log during EndRequest event.

What I'm struggling with right now is: I cannot intercept what is application writing to an output stream. I need to know what output does the application send to the client. Originally, I hoped I could run a code in BeginRequest to replace HttpContext.Response.OutputStream with a stream of my own, which would be flushed to original stream during EndRequest, but the stream only has a get accessor, so I cannot replace it.

I could of course use reflection to assign to private member of HttpContext.

View 2 Replies


Similar Messages:

Why Does Custom HttpResponse Throw Exception On HttpResponse.End()

Jul 27, 2010

I'm writing some code in which I need to use my own HttpResponse object to capture the output from a method on another object that takes an HttpResponse as a parameter. The problem is, this other object (which I cannot modify) calls HttpResponse.End(), which causes an "Object reference not set to an instance of an object" exception to be thrown. What can I do about this?

Dim myStringbuilder As New StringBuilder
Dim myStringWriter As New IO.StringWriter(myStringbuilder)
Dim myResponse As New Web.HttpResponse(myStringWriter)

someObject.doStuffWithHttpResponse(myResponse) ' calls myResponse.End() and crashes

Here's some more complete information about the error, thrown from the following code in a console application:

Dim myStringbuilder As New StringBuilder
Dim myStringWriter As New IO.StringWriter(myStringbuilder)
Dim myResponse As New Web.HttpResponse(myStringWriter)
Try
myResponse.End()
Catch ex As Exception
Console.WriteLine(ex.ToString)
End Try

Here's the text of the exception:

System.NullReferenceException: Object reference not set to an instance of an object.
at System.Web.HttpResponse.End()
at ConsoleApplication1.Module1.Main() in C:Documents and Settingsjoe.userLocal SettingsApplication DataTemporary ProjectsConsoleApplication1Module1.vb:line 10

View 2 Replies

C# - How To Read QueryString Parameters From A Url That's Going To Be Re-written And Hide Those Parameters In The New Re-written URL

Jan 3, 2011

I have two examples to show you what I want to achieve here. But to point what's different about my question, Is that I'm having a parametrized URLs and I want to implement URL rewriting to my application. But I don't want to convert the parameter in the URL to be placed between slashes..."page.aspx?number=one" to "pages/one/" << NOT!

First example:

http://localhost:1820/Pages/Default.aspx?page=2&start=5
To
http://localhost:1820/Pages/page2

Second example:

http://localhost:1820/Items/Details.aspx?item=3
To
http://localhost:1820/Items/ItemName

But I'll still need all the parameters in the original URLs

View 2 Replies

C# - OutputStream Is Not Available When A Custom TextWriter Is Used?

May 5, 2010

this is my function which converts pdf to png image, it's throwing an error onthis line--> stream.WriteTo(Response.OutputStream); Is there some thing wrong??

protected void CreatePngFromPdf()
{
try

[code]...

View 2 Replies

Is There A Size Restriction In Response.OutputStream

Jan 27, 2010

I'm using the technic described in: [URL]

to allow users to download files. Our group uses a tool called SecureGateway which doesn't seem to like FTP as a protocol.

Smaller files don't seem to have a problem, but intermittently larger files (larger than 10K) will not download to the client properly. They will just abruptly end the transfer as if they are actually completed.

I use the following code:

{
System.IO.
Stream iStream =
null;// Buffer to read 10K bytes in chunk:
byte[] buffer =
new
Byte[10000];// Length of the file:
int length;// Total bytes to read:
// string filepath = "DownloadFileName";
long dataToRead;// Identify the file to download including its path.
String filepath = Request.Params["file"].ToString();//
Identify the file name.
string filename = System.IO.Path.GetFileName(filepath);
try
{
// Open the file.
iStream = new System.IO.FileStream(filepath, System.IO.FileMode.Open,FileAccess.Read,
System.IO.FileShare.Read);
// Total bytes to read:
dataToRead = iStream.Length;
Response.ContentType = Response.AddHeader("application/octet-stream";"Content-Disposition",
"attachment; filename="" + filename +
""");
// Read the bytes.
while (dataToRead > 0)
{ // Verify that the client is connected.
if (Response.IsClientConnected)// Read the data in buffer.
{
length = iStream.Read(buffer, 0, 10000);
// Write the data to the current output stream.
Response.OutputStream.Write(buffer, 0, length);
// Flush the data to the HTML output.
Response.Flush();
buffer = new
Byte[10000];
dataToRead = dataToRead - length;
}
else
{
//prevent infinite loop if user disconnects
dataToRead = -1;
}
}
}
{
catch (Exception ex)// Trap the error, if any.
{
Response.Write("Error : " + ex.Message);
}
finally
{
if (iStream !=
null)//Close the file.
iStream.Close();
}
}
}

I know that there is a preset size restriction that you have to override when uploading a file to the server, just wondering if someone knows of a similar issue with downloading to the client.

View 6 Replies

Web Forms :: IIS7 Response.OutputStream Does Not Work In IE7?

Apr 2, 2010

The application is hosted in Windows Server 2008 with IIS7.

I have a button that calls a new webpage (asp.net page, ext .aspx) that contains

Response.OutputStream.Write(blahblahblah) which then should prompt a download box to allow user to save an image.

Now the page basically creates a stream and then is supposed to output the stream to the user using Response.Outputstream.Write.

Then the user is supposed to be prompted to open or save the document. This works fine in Firefox but it does not work with IE7 or 8

Also this exact same code works with IIS6 on a Windows 2003 server.

So the only differences is the IIS6 and Windows 2003 Server to IIS7 and Windows 2008 Server.

And what happens is when I clicked the button, the page did pop up but disappear 1-2 seconds later without
prompting the download box to the user.

Here is the code that launches for Reference

//e.g file = 123424_43535.jpeg
FileInfo myFile = new FileInfo(Server.MapPath("mapImage/") + file;
using(var fs = myFile.Open(FileMode.Open, FileAccess.Read))
{
byte[] buffer;
int read;
buffer = new byte[(int)fs.Length];
Response.AddHeader("Content-Disposition", "attachment;filename=" + file);
Response.ContentType = "application/x-force-download";
Response.AddHeader("Connection", "Keep-Alive");
Response.AddHeader("Content-Length", fs.Length.ToString());
while((read = fs.Read(buffer, 0, buffer.Length)) > 0)
{
this.Response.OutputStream.Write(buffer, 0, read);
}
}
Response.End();

I have tried to replace Response.AddHeader with Response.AppendHeader, however the result is still the same. Also, I have tried to replace the Response.ContentType with application/octet-stream and image/jpeg, I also faced the same result.

Is there any setting/modification on server/code that I need to look on?

View 13 Replies

Web Forms :: How To Write Response.OutputStream To A File Preferably In C#

Feb 4, 2010

How do I write Response.OutputStream to a file preferably in C#?

View 2 Replies

Outputstream - Can Get Read Access To The HTTP Output Stream In Web Application

Feb 22, 2010

I would like to read all content that's been written to the output stream. I'm attempting to do this using an HTTP module, and it seems like the obvious timing would be when handling the PreSendRequestContent event.

However, if the output stream seems to be set to write-only, as I can't read using a StreamReader. Is there a way I read and re-write the content without writing my own IIS module?

View 1 Replies

C# - Read Specific Div From HttpResponse?

Feb 22, 2011

I am sending 1 httpWebRequest and reading the response. I am getting full page in the response. I want to get 1 div which is names ad Rate from the response. So how can I match that pattern?

My code is like:

HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create("http://www.domain.com/");
HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
Stream response = WebResp.GetResponseStream();
StreamReader data = new StreamReader(response);
string result = data.ReadToEnd();

I am getting response like:

<HTML><BODY><div id="rate">Todays rate 55 Rs.</div></BODY></HTML>

I want to read data of div rate. i.e. I should get Content "Todays rate 55 Rs." So how can I make regex for this???

View 3 Replies

Use HttpResponse.End() For A Fast Webapp?

May 30, 2010

HttpResponse.End() seems to throw an exception according to msdn.Right now i have the choice of returning a value to say end thread(it only goes 2 functions deep) or i can call end().

I know that throwing exceptions is significantly slower (read the comment for a C#/.NET test) so if i want a fast webapp should i consider not calling it when it is trivially easy to not call it?

-edit- I do have a function call in certain functions and in the constructor in classes to ensure the user is logged in.So i call HttpResponse.End() in enough places although hopefully in regular site usage it doesn't occur too often.

View 2 Replies

Web Forms :: Can Use HttpResponse From An Ascx File

Feb 19, 2011

I am looking to render excel from an web control. I have code that works from a web page, but when I run it in an ascx.cs file it doesn't do anything.

Is there something about being in an ascx that makes a difference?

Here is my code:

Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=file.xls");
Response.ContentType = "application/vnd.ms-excel";
Response.BinaryWrite(result);
Response.End();
Response.Flush();

View 6 Replies

C# - How To Read The HTML From An HttpResponse Object

Aug 1, 2010

I'm creating a custom module and I need to be able to read the html output that's written to the HttpResponse object. Can anyone provide direction on this?

View 2 Replies

Create Object Of HttpResponse Class?

Feb 11, 2010

how to create object of HttpResponse class

HttpResponse response=new
HttpResponse (TextWriter
tx);

how to inplement this wrong code to right one & how to implement TextWriter.

View 2 Replies

Saving HttpResponse / Request To File System

Mar 15, 2010

User fills out this large page which is dynamically created based off DB values. Those values can change. When the user fills out the page and hits submit we want to save a copy of the page as html on the server, this way if the text or wording changes, when they go back to view their posted information, it is historically accurate.

So I basically need to do this

protected void buttonSave_Click(object sender, EventArgs e)
{
//collect information into an object to save it in the db
bool result = BusinessLogic.Save(myBusinessObject);
if (result)
//!!! Here is where I need to save this page as an html file on my servers IFS!!!!
else
//whatever
Response.Redirect("~/SomeOtherPage.aspx");
}

Also I CANNOT just request the data from the url because query string parameters are a big no no in this case. The key to pull the database info up (at its highest level) is all in session so I cant just request a url and save it.

View 2 Replies

Httpresponse - Why Are .docx Files Being Corrupted When Downloading From A Webpage

Mar 19, 2010

I have this following code for bringing page attachments to the user:

[code]...

The problem is that all supported files works properly (jpg, gif, png, pdf, doc, etc), but .docx files, when downloaded, are corrupted and they need to be fixed by Office in order to be opened.

At first I didn't know if the problem was at uncompressing the zip file that contained the .docx, so instead of putting the output file only in the response, I saved it first, and the file opened successfully, so I know the problem should be at response writing.

View 3 Replies

Httpresponse - How To Handle Errors When Using C# To Create A Zipfile For Download

Oct 29, 2010

I'm working on a functionality in my asp.net web site that enables the user to download some files as a zip file. I'm using the DotNetZip library to generate the zip file.

My code looks like this:

protected void OkbtnZipExport_OnClickEvent(object sender, EventArgs e)
{
var selectedDocumentIds = GetSelectedDocIds();
string archiveName = String.Format("archive-{0}.zip", DateTime.Now.ToString("yyyy-MMM-dd-HHmmss"));
AddResponseDataForZipFile(Response, archiveName);
try
{
string errorMessage = Utils.ExportToZip(selectedDocumentIds, arkivdelSearchControl.GetbraArkivConnection(), Response.OutputStream);
if (!string.IsNullOrEmpty(errorMessage)).......

Now, if anything goes wrong, say the Utils.ExportToZip method fails, I want to present an error message to the user and not the download dialog. Do I have to remove some data from the Response object in order to cancel the download operation?

View 2 Replies

C# - Will HttpResponse - Filter Buffer The Whole Data Before Start The Sending?

Apr 6, 2010

An user posts this article about how to use HttpResponse.Filter to compress large amounts of data. But what will happen if I try to transfer a 4G file? will it load the whole file in memory in order to compress it? or otherwise it will compress it chunk by chunk?

I mean, I'm doing this right now:

public void GetFile(HttpResponse response)
{
String fileName = "example.iso";
response.ClearHeaders();
response.ClearContent();
response.ContentType = "application/octet-stream";

[Code]....

So at the same time I'm reading, I'm compressing and sending it. Then I wanna know if HttpResponse.Filter do the same thing, or otherwise it will load the whole file in memory in order to compress it. Also, I'm a little bit insecure about this... maybe is needed to load the whole file in memory to compress it... is it?

View 1 Replies

Web Forms :: Accessing HttpResponse Page.Response From A Class Instead Of Cs File?

Oct 18, 2010

I have an issue with trying to create a Pdf file from my webpage. Basically, everythig involving creating the Pdf (using iTextSharp) is done, and I'm doing this as a File Stream (i.e, I'm saving the Pdf on local machine). Now what I'm trying to do is create it as a Memory Stream (i.e, open the Pdf from the browser). I was able to do this earlier when I wa still at the 1st version of the application, and all of the code behind was incluced in my .aspx.cs file. But now, I've kept the code in the .aspx.cs at a minimum and put the cude in classes and I'm creating onjects of thoses classes from the .aspx.cs

The problem is that the code from creating the Memory Stream is in a class as follows:

[Code]....

As you can imagine, the compiler cannot recognise "Response" as it's in a seperate class instead of in .aspx.cs

View 5 Replies

C# - No Trailing Slash In Hostname, HttpResponse.RemoveOutputCacheItem Doesn't Work?

Feb 19, 2011

I have an action for which the output is fairly static, until another action is used to update the datasource for the first action. I use HttpResponse.RemoveOutputCacheItem to remove that action's cached output so that it is refreshed next time the user loads it.Basically I have an action like this:

[OutputCache(Duration=86400, Location=OutputCacheLocation.Server)]
public ActionResult Index()
{
return ...
}

[code]...

View 3 Replies

Web Forms :: Trying To Create An Instance Of System.Web.HttpResponse To Send The Uers To Another Website?

Jul 11, 2010

I am trying to create an instance of System.Web.HttpResponse to send the uers to another website.I am doing some other stuff in my vb.net that does not let me use the regular Response.Redirect.when I do Dim myRsp As System.Web.HttpResponse = New System.Web.HttpResponseit complains about a textwriter.

View 4 Replies

C# - How To Intercept Any Postback In A Webpage

Feb 10, 2010

I want to intercept any postbacks in the current page BEFORE it occurs . I want to do some custom manipulation before a postback is served. how to do that?

View 5 Replies

Best Way To Intercept Control Rendering?

Jan 13, 2011

I have a control used in our CMS and we don't have the source code for it, what I would like to do is change the rendered output of this control.

Now, I could have a check in my base Page class that checks if the control is being used on the page and then change the html that needs to be altered, but that seems a bit excessive for just 1 usage.

So is there any other way of changing the behaviour of the control without the source code? I'm thinking not other than the way described above.

View 1 Replies

C# - HttpModule Does Not Intercept Js And Css Files In IIS 5.1.

Feb 14, 2011

I am implementing HttpModule for compressing request.Below is the codee for HttpModule:

public class Global : IHttpModule
{
public void Init(HttpApplication app)
{[code]....

It's able to intercept and compress js and css in the development web server but when i run it from IIS 5.1 it is not able to compress js and css files.

View 2 Replies

How To Intercept 401 From Forms Authentication In MVC?

May 28, 2010

I would like to generate a 401 page if the user does not have the right permission.

The user requests a url and is redirected to the login page (I have deny all anonymous in web.config). The user logs in successfully and is redirected to the original url. However, upon permission check, it is determined that the user does not have the required permission, so I would like to generate a 401. But Forms Authentication always handles 401 and redirects the user to the login page.

To me, this isn't correct. The user has already authenticated, the user just does not have the proper authorization.

In other scenarios, such as in ajax or REST service scenario, I definitely do not want the login page - I need the proper 401 page.

So far, I've tried custom Authorize filter to return ViewResult with 401 but didn't work. I then tried a normal Action Filter, overriding OnActionExecuting, which did not work either.

What I was able to do is handle an event in global.asax, PostRequestHandlerExecute, and check for the permission then write out directly to response:

if (permissionDenied)
{
Context.Response.StatusCode = 401;
Context.Response.Clear();
Context.Response.Write("Permission Denied");
Context.Response.Flush();

[code]....

First of all, I'm not even sure if that is the right event or the place in the pipeline to do that.
Second, I want the 401 page to have a little more content. Preferably, it should be an aspx page with possibly the same master page as the rest of the site. That way, anyone browsing the site can see that the permission is denied but with the same look and feel, etc. but the ajax or service user will get the proper status code to act on.

View 3 Replies

WCF / ASMX :: Is It Possible To Intercept Web Service Call

Feb 28, 2011

n my A.aspx, I will call web method GetName in B.asmx

Is it possible, before my A.aspx call GetName in B.asmx, I inject or put some codes so when A.aspx try to call the method, it needs to go through my injected code without even changing the code in A.aspx and B.asmx?

Is custom HttpModule able to handle this scenario? If yes, how? Which HttpModule's event that occurred before the page actually called the web service?

View 2 Replies







Copyrights 2005-15 www.BigResource.com, All rights reserved