Pytanie : Czytać XML kartoteka w global.asax redirect strona prośba strona

I tworzyć xml kartoteka który mieć bezcelowość url abd the redirect url. I chcieć globalny asax ten kartoteka redirect the strona prośba the odpowiedni strona. W TEN SPOSÓB na przykład jeżeli w ten sposób pisać na maszynie wewnątrz http://www.company.com/pro ducts mieć który redirected http://www.company.com/sit eproducts/products.aspx. pod być niektóre kod I wrote.




/products/nitylink>
/siteproducts/products.aspx? WT.MC_ID=23edirectlink>



global.asax

public kawitacyjny Application_BeginRequest ()
{
DataTable dtblVanityLinks = null;
smyczkowy strThisUrl = null;
smyczkowy strSelect = null;
DataRow [] arrMatches = null;
smyczkowy strRedirectLink = null;

dtblVanityLinks = GetVanityLinks ();
strThisUrl = Request.Path.ToLower ();
jeżeli (Request.ApplicationPath! = "/") {
strThisUrl = strThisUrl.Remove ((0), Request.ApplicationPath.Length);
}
strSelect = "vanitylink='" + strThisUrl + "'";
arrMatches = dtblVanityLinks.Select (strSelect, "vanitylink");
jeżeli (arrMatches.Length > (0)) {
strRedirectLink = arrMatches [(0)] ["redirectlink"];
strRedirectLink = Request.ApplicationPath + strRedirectLink;
Context.RewritePath (strRedirectLink) ;
}
}

public DataTable GetVanityLinks ()
{
DataSet dstVanityLinks = null;
DataTable dtblVanityLinks = null;

dtblVanityLinks = Context.Cache ("vanitylinks");
jeżeli (dtblVanityLinks == null) {
dstVanityLinks = nowy DataSet ();
dstVanityLinks.ReadXml (Server.MapPath ("VanityURLRedirects.xml"));
dtblVanityLinks = dstVanityLinks.Tables ((0));
Context.Cache.Insert ("vanitylinks", dtblVanityLinks, nowy CacheDependency (Server.MapPath ("VanityURLRedirects.xml") ));
}
powrotny dtblVanityLinks;
}


Any pomysł na dlaczego na być ogromnie appreciated.

Odpowiedź : Czytać XML kartoteka w global.asax redirect strona prośba strona

Ty jeden móc jeden the pre-budować moduł zamiast writing ono gdy ono być nużący i błąd - skory.

http://urlrewriter.net/

The uaktualniony kod także wysyłać także.
(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
    kawitacyjny Application_BeginRequest (Przedmiot nadawca, EventArgs e)
    {
        RewriteUrl ();
    }

    jawny DataTable GetVanityLinks ()
    {
        DataSet dstVanityLinks = null;
        DataTable dtblVanityLinks = null;

        //dtblVanityLinks = Context.Cache ("vanitylinks");

        jeżeli (dtblVanityLinks == null)
        {
            dstVanityLinks = nowy DataSet ();
            dstVanityLinks.ReadXml (Server.MapPath ("VanityURLRedirects.xml"));
            dtblVanityLinks = dstVanityLinks.Tables [(0)];
            Context.Cache.Insert ("vanitylinks", dtblVanityLinks, nowy CacheDependency (Server.MapPath ("VanityURLRedirects.xml")));
        }

        powrotny dtblVanityLinks;
    }

    jawny kawitacyjny RewriteUrl ()
    {
        DataTable dtblVanityLinks = null;
        smyczkowy strThisUrl = null;
        smyczkowy strSelect = null;
        DataRow [] arrMatches = null;
        smyczkowy strRedirectLink = null;

        dtblVanityLinks = GetVanityLinks ();

        strThisUrl = Request.Path.ToLower ();

        jeżeli (Request.ApplicationPath! = "/")
        {
            strThisUrl = strThisUrl.Remove ((0), Request.ApplicationPath.Length);
        }

        strSelect = "vanitylink = "" + strThisUrl + "" ";
        arrMatches = dtblVanityLinks.Select (strSelect, "vanitylink");
        jeżeli (arrMatches.Length > (0))
        {
            strRedirectLink = arrMatches [(0)] ["redirectlink"] .ToString (); ;
            strRedirectLink = Request.ApplicationPath + strRedirectLink;

            Context.RewritePath (strRedirectLink);
        }
    }
Inne rozwiązania  
 
programming4us programming4us