Fixing Microsoft's Bugs: Url Rewriting

Yet another day, yet another ASP.NET flaw to work around. If you've ever attempted url rewriting with the .NET framework, two things will quickly become apparent:

1) It is amazingly easy.

2) It is amazingly useless.

Why useless you might ask? Well, the issue is that as soon as you start rewriting urls, postbacks start breaking. The root of this evil is the HtmlForm tag, in which some idiot who probably hasn't been fired yet made the decision that he was going to hard code the “action” tag output so that you cannot set it on your own. This would have been not so bad in itself, at least if someone had pointed out that HttpContext has this little member called RewritePath which blows his lame ass implementation to bits. Unfortunately, there is very little you can do about this and the most common solution is to change the form action attribute with javascript. Well, if you ask me that is idiotic (not to mention error prone, because if there is a script error or the browser doesn't support javascript you are screwed). So, as our upcoming CMS product needs to fully support Url rewriting, I needed a better fix than that. After a little bit of code spellunking with Anakrino, we discovered the root of the problem (HtmlForm.RenderAttributes), which looks like something like this:

 writer.WriteAttribute("name", this.Name);
 this.Attributes.Remove("name");
 writer.WriteAttribute("method", this.Method);
 this.Attributes.Remove("method");
 writer.WriteAttribute("action", this.GetActionAttribute(), true);
 this.Attributes.Remove("action");
 local0 = this.Page.ClientOnSubmitEvent;
 if (local0 != null && local0.Length > 0) {
  if (this.Attributes.get_Item("onsubmit") != null) {
   local0 = local0 + this.Attributes.get_Item("onsubmit");
   this.Attributes.Remove("onsubmit");
  }
  writer.WriteAttribute("language", "javascript");
  writer.WriteAttribute("onsubmit", local0);
 }
 if (this.ID == null)
  writer.WriteAttribute("id", this.ClientID);
 this.RenderAttributes(writer);


So, the question of the day is, what the hell can you do about this? Well, it just so happens that HtmlTextWriter (which is a method parameter here) is not a sealed class and WriteAttribute is a virtual method. So, if you can get your own HtmlTextWriter into this method, you could trap this funky behavior and write your own form tag (it is actually slightly more complicated than you might think, because HtmlTextWriter isn't a nice abstract base class like you are hoping for and there is no interfaces to implement either). So, a simple implementation is going to look something like this:

public MyModuleThatRewritesUrls : IHttpModule
{
   void Application_BeginRequest(object sender, EventArgs e)
  {
     HttpContext.Current.Items[“VirtualUrl“] = Request.Path;
     HttpContext.Current.RewritePath(newUrl);
  }
}

public class MyPage :  Page
{
  protected override Render(HtmlTextWriter writer)
  {
      string action = (string)HttpContext.Current.Items[“VirtualUrl“];
      if(action != null) writer = new MyHtmlWriter(writer, action);
      base.Render(writer);
  }
}

Now, in your custom HtmlWriter you will want to do something like this:

 public class FormFixerHtmlTextWriter : HtmlTextWriter
 {
  ...
bool _inForm = false; public override void RenderBeginTag(string tagName) { _inForm = String.Compare(tagName,"form") == 0; base.RenderBeginTag (tagName); } public override void WriteAttribute(string name, string value, bool fEncode) { if(String.Compare(name, "action", true) == 0) { value = _formAction; } base.WriteAttribute (name, value, fEncode); } }

There you have it. Now you can rewrite urls all day long and you don't have to worry about client side javascript issues (I guess you could also post-process all content with RegEx if you really wanted, but my guess is that would be significantly slower). If you really want to get funky, you can modify the browserCaps info for the machine to automatically use your HtmlTextWriter implementation (”tagwriter” member), and then you don't have to override the Render method in your page classes. Be forewarned though, there are currently two versions of HtmlTextWriter (HtmlTextWriter and Html32TextWriter), so you should provide overridden implementations of each regardless of the way that you choose to hook into ASP.NET. Our current implementation uses a render method override which looks a little something like this:

   if(EmpowerContext.Current.VirtualUrl != null)
   {
    string url = EmpowerContext.Current.VirtualUrl;
    if(writer.GetType() == typeof(Html32TextWriter))
    {
     writer = new FormFixerHtml32TextWriter(writer.InnerWriter, "    ", url);
    }
    else if(writer.GetType() == typeof(HtmlTextWriter))
    {
     writer = new FormFixerHtmlTextWriter(writer.InnerWriter, "    ", url);
    }   
   }  
   base.Render (writer);
Published Monday, March 15, 2004 11:11 PM by Jesse Ezell

Comments

# Take Outs for 15 March 2004

Monday, March 15, 2004 6:28 PM by TrackBack
You have been Taken Out! Thanks for the post.

# re: Fixing Microsoft's Bugs: Url Rewriting

Monday, March 15, 2004 6:30 PM by Don Park
Hmm. Good stuff, Jesse.

# re: Fixing Microsoft's Bugs: Url Rewriting

Monday, March 15, 2004 6:52 PM by Oddur Magnusson
We did the same, but we inherited the HtmlForm class and overrode the RenderAttributes method for our cms product. Works like a charm ;) Seems like a cleaner method than overriding the HtmlTextWriter. We got the client side javascript working using reflection. Contact my if you wan't te see how we did it.

# re: Fixing Microsoft's Bugs: Url Rewriting

Monday, March 15, 2004 7:23 PM by Jesse Ezell
But then you require a custom form tag in the aspx page, right? 99% of all pages managed by the cms will be developed using our standard CmsPage base class anyway (it is possible to not use the base class, but a lot of extra work without much benefit), so this keeps the changes down to a minimum. We try to make everything as transparent as possible to end users.

# UrlReWriting

Tuesday, March 16, 2004 2:55 AM by TrackBack
Can we remove PageParser.GetCompiledPageInstance?

# RE: Fixing Microsoft's Bugs: Url Rewriting

Tuesday, March 16, 2004 7:39 AM by Scott_NO_@_SPAM_Tripleasp.net (Scott Watermasysk)
Jesse,

Pretty cool stuff. I will need to do some testing, but it looks much cleaner than my PageParser method.

# re: Fixing Microsoft's Bugs: Url Rewriting

Tuesday, March 16, 2004 11:08 AM by David Neal
Jesse,

Wow! This is great. I didn't even realize that this could be an issue.

I've implemented your idea in my own portal. It could be me, but it seems that the pages are loading faster. However, I've discovered on pages that use QueryString params, the parameters are not persisting on postback as they had in the past. Is there something I should be doing to make sure this happens?

# re: Fixing Microsoft's Bugs: Url Rewriting

Tuesday, March 16, 2004 11:21 AM by David Neal
Ahh... it looks like you have to persist the querystring in the action tag yourself, as well.

# Url Rewriter bug

Tuesday, March 16, 2004 11:33 AM by TrackBack

# re: Fixing Microsoft's Bugs: Url Rewriting

Tuesday, March 16, 2004 12:56 PM by Jesse Ezell
Scott: Yes, you should be able to remove GetCompiledPageInstance as long as you aren't doing anything else in there.

# The Technologist

Tuesday, March 16, 2004 12:58 PM by TrackBack
The Technologist

# Url Rewriting Postback Workaround

Tuesday, March 16, 2004 10:32 PM by TrackBack

# re: Fixing Microsoft's Bugs: Url Rewriting

Wednesday, March 17, 2004 1:25 PM by Nick Berardi
Well this is a good idea but it just seems a little complicated for my tastes. What I did in my implimentation is overload the HtmlForm control. Then on the rendering of the page, I just removed the old form and replaced it with the new form, and moved all the old forms controls over to the new forms controls.

# re: Fixing Microsoft's Bugs: Url Rewriting

Wednesday, March 17, 2004 1:30 PM by Nick Berardi
Or a better senario which I use in OmniPortal is just using my implimentation of the form and then loading the controls into that instead of loading the controls into a predefined page. So instead of having all the ASPX pages in your project you only have one and then everything else is just a control. This has worked great for me, and it basically follows the same guide lines of .Text, and how it handles URL's.

In addition I have also ported .Text over to an OmniPortal module with out touching any of the .Text code, that is how simular the projects are.

# re: Fixing Microsoft's Bugs: Url Rewriting

Wednesday, March 17, 2004 2:11 PM by Jesse Ezell
Yes, that is the same tecnique that Oddur mentioned. It works great if you are doing things internally, but when you are developing a framework that needs to be drop dead easy to use, that extra step of changing the form tag to your custom form tag or requiring architecture changes (to use controls instead of pages) is just a bit too much.

# URL Rewriting in .NET - Redux

Wednesday, March 17, 2004 7:48 PM by TrackBack

# URL Rewriting in .NET - Redux

Wednesday, March 17, 2004 7:50 PM by TrackBack

# re: Fixing Microsoft's Bugs: Url Rewriting

Wednesday, March 17, 2004 11:24 PM by Nick Berardi
Well that is not entirely true. If you look at some of the better Open Source CMS's out there, they are very easy to add and subtract modules from. And there is no need to add extra ASPX pages. ASPX pages also don't allow the flexability, of loading and security based from the database for individual pages.

# re: Fixing Microsoft's Bugs: Url Rewriting

Thursday, March 18, 2004 12:37 AM by Jesse Ezell
You can easily add security to ASPX page templates, (we do just that). To give you an idea of the templating we have implemented, you create an ASPX page just like you would normally create any ASPX page (with VS.NET, NotePad, WebMatrix, etc.), then, you simply drop in a content placeholder such as "HtmlContentPlaceHolder" which designates that the region of the page will be editable with rich text. You upload that page to your templates folder and it can be reused an infinate number of times (with different security permissions, etc.). This allows you to fully customize every aspect of the page. You can litterally do anything in these ASPX pages that you could do in a standard ASPX page, which is not the case with the portal/component model. Yes, it was quite a bit more work to implement this on our side than copying the IBuySpy portal model (since ASP.NET doesn't support a lot of this functionality out of the box) but as far as developers are concerned all of that is transparent. A lot of the open source cms packages out there aren't really CMS packages (even some of the better ones), they are more like cheap knock-offs of SharePoint. You could build this drag and drop component stuff fairly easily on top of our CMS APIs, however, we don't force you to use that model. Perhaps I will write something up on the reasons behind our choices and post it to the blog, then maybe you will see the advantages a little more clearly.

# re: Fixing Microsoft's Bugs: Url Rewriting

Thursday, March 18, 2004 2:41 PM by Nick Berardi
I am curious so what are you doing going out and grabbing the page for each request? Did you create your own HandlerFactory, that grabs the page from a specific location using PageParser.GetCompiledPageInstance and then just returns the IHttpHandler for that? With your implimentation does your URL contain a whole bunch of junk like many of the IBuySpy's or does it impliment a more search engine friendly URL like Community Starter Kit?

I am just curious, because with my serving engine, which a CMS is built on top of, I didn't use ASPX pages for the reason that it would be a pain going out and getting the handler for each. So I went with the implimentation of just adding controls into the page that had all the information that I needed. Much the same way that you are doing your pages.

You don't need anything special or inherit from any special class, all that you need to do is drop in a content place holder and you are done. Then any of the modules load into that place holder.

If you want to check out the project it can be seen at http://www.omniportal.net.

# re: Fixing Microsoft's Bugs: Url Rewriting

Thursday, March 18, 2004 4:11 PM by Jesse Ezell
We don't have to do anything with handler redirection. Basically, the ASPX pages are stored on the file system, just like a normal ASP.NET application would store its pages. What we do is use RewriteUrl to redirect to that template, supplying a URL like:

Templates/Template.aspx?ChannelID=103&PostingID=103

Because we are using RewriteUrl, the user never actually sees this url (the translation is all done on the back end) and ASP.NET handles all the CompilePage / Handler business just like it normally would. In any case, you could just as easily store this extra information we pass in the Url in the HttpContext.Items collection or somewhere else if you had some requirement that eliminated the option of using long urls behind the scenes.

# How to Solve Postback Issue in URLRewriting

Thursday, March 18, 2004 7:34 PM by TrackBack

# re: Fixing Microsoft's Bugs: Url Rewriting

Thursday, March 18, 2004 8:24 PM by Nick Berardi
I was just curious, because I don't use anything like that in my URL Managment system (I say URL because I just provide the engine what ever somebody builds on top of it doesn't really matter, as long as they create a theme and a module). I actually don't use any kind of URL rewrite with mine. I use a tree structure for the pages/sections and then I get the information from PathInfo.

This works very well because it doesn't violate any of the standard URL's. Becuase one of the reasons I started using this method instead of how CSK does it is because you always have to have a file in the path that ends with default.aspx?

Did you find a way to get around this problem. Sorry to be so nosy I just like to see what everybody else does and how they handle their URL's.

# re: Fixing Microsoft's Bugs: Url Rewriting

Friday, March 19, 2004 1:33 PM by Jesse Ezell
RewriteUrl doesn't require any files to actually exist except for the one in the path that you rewrite your Url as.

# re: Fixing Microsoft's Bugs: Url Rewriting

Saturday, March 20, 2004 2:43 PM by Scott
My questions was just a retorical excerpt for my post linking to your suggestions. But thanks for the answer anyway :)

-Scott

# re: Fixing Microsoft's Bugs: Url Rewriting

Thursday, April 08, 2004 11:53 AM by Very good article
I plan to use URL rewriting in my site, and your explaination greatly helps!

# re: Solving the

Wednesday, April 28, 2004 5:50 PM by TrackBack

# re: Fixing Microsoft's Bugs: Url Rewriting

Monday, May 24, 2004 11:17 AM by Jeremy
Very cool, but can you elaborate on this part a bit:

public MyModuleThatRewritesUrls : IHttpModule
{
...
}

I am new to ASP.NET, and I am not quite sure what the purpose of IHttpModule is or where you would use it at. Here is my understanding of the rest of the process:

- All pages inherit from a new base page, which overrides the render method

- The new base page loads an inherited version of either HtmlWriter or Html32Writer

- The inherted Writer then fixes the form tag so that the custom URL is not lost

Is that right? The entry point is the thing I don't understand.

Thanks.

# re: Fixing Microsoft's Bugs: Url Rewriting

Monday, May 24, 2004 4:33 PM by Jesse Ezell
An http module can intercept and pre or post process http requests. You should look for complete info on MSDN (there are lots of samples there).

# re: Fixing Microsoft's Bugs: Url Rewriting

Thursday, June 10, 2004 4:25 AM by Pham Kim Ngan
CODE VERY LONG

Simple way here:

On the destination page, in the page load, just re-rewrite corect path:

private void Page_Load(object sender, System.EventArgs e) {
string sFile = Request.RawUrl.Substring(Request.RawUrl.LastIndexOf("/") + 1);
HttpContext.Current.RewritePath(sFile);
}

No lost any.

# re: Fixing Microsoft's Bugs: Url Rewriting

Thursday, June 10, 2004 1:27 PM by Jesse Ezell
RewritePath has limitations that are not acceptable, which is why this code is needed.

# Hey Meatheads

Monday, June 14, 2004 11:31 PM by ThinkingHatOn
In your mouth foaming madness you should take a moment to look at the problem more closely. there are much simpler solutions than this. After processing your page_load you can re-rewrite the url back to its original form. The form action tag will work correctly. Remember - bashing Microsoft is no substitute for thinking.

# re: URL rewriting, help required

Wednesday, June 23, 2004 12:02 AM by TrackBack

# re: Fixing Microsoft's Bugs: Url Rewriting

Thursday, July 22, 2004 2:16 AM by Jason Taylor (NZ)
Rewirtting the URL gets the IsPostBack working but no other events fire :(

This does work though

IHttpHandler appHandler = this.Context.Handler;
this.Context.RewritePath(strExecute);
appHandler = PageParser.GetCompiledPageInstance(strExecute, Server.MapPath(strExecute),this.Context);
appHandler.ProcessRequest(this.Context);

Note: theres no way to capture this output so the trick is executing it in the correct place.

# re: Fixing Microsoft's Bugs: Url Rewriting

Tuesday, July 27, 2004 1:56 AM by kenny
Where can I find more information on Empower Jesse?

-k

# re: Fixing Microsoft's Bugs: Url Rewriting

Tuesday, July 27, 2004 2:17 AM by Jesse Ezell
More info will be available as soon as we get our new web site up, but in the mean time if you want to get a demo or more specific info, send an email to eric@activehead.com and he can arrange one.

# URL Rewriting

Friday, July 30, 2004 11:04 AM by TrackBack

# re: Fixing Microsoft's Bugs: Url Rewriting

Thursday, August 05, 2004 8:02 AM by Jono Ward
Hi, I've had the exact same problem as you guys, just thought if you're interested to see what my solution was, this is what I did (Apologies if this is repition of anyone elses comments):

Override System.Web.UI.HtmlForm with a class with 1 overriding Sub, RenderBeginTag. Create a stringWriter to send to the base classes RenderBeginTag. Get that string, add a closing tag, load as XmlDocument, change "action" to Request.RawURL, remove closing tag and write that the HtmlTextWriter!. Seems to work. Only thing is that you have to use your custom form tag in all your pages. Here is the code for anyone who is interested.

Protected Overrides Sub RenderBeginTag(ByVal writer As HtmlTextWriter)
Dim strWriter As New StringWriter
Dim htmlWriter As New HtmlTextWriter(strWriter)
MyBase.RenderBeginTag(htmlWriter)

Dim xmlDoc As New XmlDocument
xmlDoc.LoadXml(strWriter.ToString() & "</form>")
Dim node As XmlNode = xmlDoc.SelectSingleNode("/form")
node.Attributes("action").Value = HttpContext.Current.Request.RawUrl

'Check for both types of closing tags
writer.Write(node.OuterXml.Replace(" />", ">").Replace("</form>", ""))
End Sub

# The Passion and the Fury of URL Rewriting

Wednesday, September 22, 2004 5:49 PM by TrackBack

# The Passion and the Fury of URL Rewriting

Wednesday, September 22, 2004 5:56 PM by TrackBack

# re: Big Update To AspAlliance

Friday, February 11, 2005 9:36 PM by TrackBack

# Rewriting URL's....can't we do better?

Thursday, March 31, 2005 4:16 AM by TrackBack
Rewriting URL's....can't we do better?

# PostBacks does not work with Url Rewriting &laquo; My .NET and Everything that goes with it&#8230;

PingBack from http://budigelli.wordpress.com/2007/04/03/postbacks-does-not-work-with-url-rewriting/

# blog.budigelli.com &raquo; Blog Archive &raquo; PostBacks does not work with Url Rewriting

Pingback from  blog.budigelli.com  &raquo; Blog Archive   &raquo; PostBacks does not work with Url Rewriting

# re: Fixing Microsoft's Bugs: Url Rewriting

Thursday, June 21, 2007 9:49 AM by Yaroslav

Why everybody forgets about HTML <BASE> tag? This tag is supported by all borwsers and does not require scripts. And setting correct document base with it can resolve all the headache about postbacks and other incorrectly specified document relative links on a page after utilizing URL rewriting functions.

# re: Fixing Microsoft's Bugs: Url Rewriting

Thursday, June 28, 2007 7:53 AM by ishtar

www.helicontech.com/.../forum_posts-TID-6254.htm

# re: Fixing Microsoft's Bugs: Url Rewriting

Tuesday, August 14, 2007 1:46 AM by Ashleigh

Thanks Yaroslay. I was about to implement this but after reading your comment I can't find anything that isn't working for my CMS implementation using the base tag. Bearing in mind once a user enters any form of administration mode I turn off friendly URLs. I find Request Params to be a very efficient way of tracking users and avoid things such as PostBack and Ajax where possible.

PostBack has too much round trip data associated with it.

Ajax:

Atlas - Ajax is ugly and quickly becomes restrictive and messier than Michael Schwarz Ajax implementation.

Michael Schwarz - Ajax: I think this is great but dislike some of the issues associated with housing virtual applications below it.

Anyway, base tags rock, and I now feel like the biggest idiot for forgetting about them! ops...

# Acne Pimples Treatments Scars Products Medication

Friday, September 21, 2007 4:04 AM by Acne Pimples Treatments Scars Products Medication

The most accurate migraines tips may take a bit of effort to detect.

# Click here

Thursday, September 27, 2007 11:04 AM by Click here

It can periodically become difficile to sort the good zune facts from the inadequate.

# click here

Sunday, October 21, 2007 11:42 PM by click here

It is legitimate that finding confirmed research on this subject can be difficult.

# re: Fixing Microsoft's Bugs: Url Rewriting

Thursday, October 25, 2007 10:50 AM by MadShad

If you use this then ensure your overwritten action url is wrapped by a call to:

System.Web.HttpContext.Current.Response.ApplyAppPathModifier(actionString);

This will ensure that cookieless sessionState is maintained for those 'awkward' customers!

# re: Fixing Microsoft's Bugs: Url Rewriting

Tuesday, April 15, 2008 1:29 PM by Mathias

This is a old post but I was wondering if anyone could show me a good solution using the base tag as Yaroslav suggests?

# re: Fixing Microsoft's Bugs: Url Rewriting

Sunday, June 08, 2008 2:53 PM by ctl00$main$ctl08$ctl02$ctl02$ctl02$tbname

dust land wear printable from history promised in shanghai war bialystok study oral oral history palgrave <a href= bedebuco.cn/bialystok-dust-from-history-history-in-land-oral-oral-palgrave-promised-shanghai-study-war-wear.html >dust oral study palgrave land history oral wear shanghai war promised history god from bialystok in</a> [url=bedebuco.cn/bialystok-dust-from-history-history-in-land-oral-oral-palgrave-promised-shanghai-study-war-wear.html]dust oral study palgrave land history oral wear shanghai war promised history god from bialystok in[/url]

# re: Fixing Microsoft's Bugs: Url Rewriting

Tuesday, July 22, 2008 12:19 AM by Vlad

Sorry for a lame question - I would assume that you were writing for .NET 1.1 - what's the story with .NET 2.0 and 3.5?

# re: Fixing Microsoft's Bugs: Url Rewriting

Saturday, August 23, 2008 3:01 AM by vihutuo

ASP.NET 2.0 has a major problem with URL rewriting. I used the built in URL rewriting support for a small website of mine. The rules were written in the web.config file like this

 <add

      url="~/Clubs/Computer Club.aspx"

      mappedUrl="~/ShowPage.aspx?PageID=17" />

Even after a year I found out that the pages were not getting indexed by google. In fact it was throwing  "Network unreachable error" . The pages which did not use URL rewriting were nicely getting indexed and has even become PR3 now.

I have used URLRewriter.NET but the same issues are there too

It's a very bad bug in ASP.NET 2.0 . I feel sorry for the scores of people who will use it without knowing it and their sites will remain invisible to google.

# re: Fixing Microsoft's Bugs: Url Rewriting

Tuesday, November 04, 2008 1:37 PM by kral oyun

Sorry for a lame question - I would assume that you were writing for .NET 1.1 - what's the story with .NET 2.0 and 3.5?  thanks

# re: Fixing Microsoft's Bugs: Url Rewriting

Friday, November 28, 2008 1:14 AM by Albina-zi

<a href= aseeds.one.angelfire.com >transvestite rockstar</a>

# re: Fixing Microsoft's Bugs: Url Rewriting

Friday, November 28, 2008 6:41 AM by Albina-as

<a href= http://fasster.angelfire.com >baltimore and convention center and headquarters</a> <a href= http://gertui.angelfire.com >nasdaq 100 tennis tournament</a>

# re: Fixing Microsoft's Bugs: Url Rewriting

Friday, November 28, 2008 1:16 PM by Albina-gb

<a href= http://fairra.angelfire.com >landls end</a> <a href= http://vonucshka.angelfire.com >chancellor internal med</a>

# re: Fixing Microsoft's Bugs: Url Rewriting

Friday, November 28, 2008 6:22 PM by Albina-zi

<a href= http://chkola.angelfire.com >avlastkey</a> <a href= http://bustersw.angelfire.com >how to start a strawberry patch in alabama</a>

# re: Fixing Microsoft's Bugs: Url Rewriting

Friday, November 28, 2008 11:11 PM by Albina-uf

<a href= http://kustur.angelfire.com >dad vail regatta</a> <a href= http://trututa.angelfire.com >ratings apartments eagle ridge alabama</a>

# re: Fixing Microsoft's Bugs: Url Rewriting

Saturday, December 06, 2008 1:07 PM by Semil

<a href= spiritez.com ></a>

# re: Fixing Microsoft's Bugs: Url Rewriting

Friday, December 26, 2008 9:16 AM by Larcik-zb

<a href= membres.lycos.fr/maffals >genetic disorters</a>

# re: Fixing Microsoft's Bugs: Url Rewriting

Monday, December 29, 2008 11:18 AM by nick_oloacr

http://www.message_basdro.com/

# re: Fixing Microsoft's Bugs: Url Rewriting

Wednesday, January 07, 2009 4:25 PM by Johan Herscheid

See scottgu's blog:

weblogs.asp.net/.../tip-trick-url-rewriting-with-asp-net.aspx

for a better and cleaner solution of form action rewriter

# re: Fixing Microsoft's Bugs: Url Rewriting

Tuesday, February 10, 2009 4:46 AM by goowliscosord

Hi I would like to present to your attention our  <a href=king-xxx.blogspot.com/><font color=red><b>blog </b></font></a>

If you are under <font color=red>18</font> please do not go to links

# re: Fixing Microsoft's Bugs: Url Rewriting

Sunday, March 01, 2009 12:56 AM by Larcik-qx

<a href= http://adultchatsfinder.com >find partner</a>

# re: Fixing Microsoft's Bugs: Url Rewriting

Sunday, March 01, 2009 12:56 AM by ellaelax-nl

<a href= adultspeeddatingfinder.com >chat online</a>

# re: Fixing Microsoft's Bugs: Url Rewriting

Thursday, April 09, 2009 11:41 PM by nick_olovar

www.message_nositcd.com

# re: Fixing Microsoft's Bugs: Url Rewriting

Monday, May 04, 2009 7:37 AM by Lee Gunn

Can you not just use:

this.Form.Action = this.Request.RawUrl;

Maybe I'm missing something...but that is what I use to fix the url rewrite issue. I'm pretty sure it solves most problems.

# re: Fixing Microsoft's Bugs: Url Rewriting

Saturday, May 16, 2009 9:10 AM by nick_letoc4

www.message_acelnocco.com

# re: Fixing Microsoft's Bugs: Url Rewriting

Wednesday, June 10, 2009 3:26 PM by transparent bikini

Best transparent bikini

# re: Fixing Microsoft's Bugs: Url Rewriting

Wednesday, July 29, 2009 3:16 AM by name

Your Site Is Great!,

# re: Fixing Microsoft's Bugs: Url Rewriting

Wednesday, July 29, 2009 10:27 AM by name

It is a very good thing,

# re: Fixing Microsoft's Bugs: Url Rewriting

Wednesday, July 29, 2009 2:03 PM by name

So where it to find,

# re: Fixing Microsoft's Bugs: Url Rewriting

Thursday, July 30, 2009 12:12 AM by name

Where it is possible to buy the,

# re: Fixing Microsoft's Bugs: Url Rewriting

Thursday, July 30, 2009 6:57 AM by name

I like your work!,

# re: Fixing Microsoft's Bugs: Url Rewriting

Wednesday, October 21, 2009 6:15 PM by fhjmxfhmxfh

xfhmfgmfg gn xdgn gf g

# re: Fixing Microsoft's Bugs: Url Rewriting

Friday, October 23, 2009 12:53 PM by Goodmedalist

How can I use my customized Page class inside Sharepoint?

Leave a Comment

(required) 
(required) 
(optional)
(required)