Pergunta : Ler a lima de XML em global.asax para reorientar o pedido de página corrigir a página

Eu criei uma lima do xml que tivesse um abd do URL da vaidade o URL da reorientação. Eu quero o asax global ler esta lima para reorientar o pedido de página à página apropriada. TÃO por exemplo se alguém datilografa dentro o rel= " nofollow " do " _blank " " do target= de " http://www.company.com/products do href= do o ducts de http://www.company.com/pro tem que seja reorientado ao rel= " nofollow " do " _blank " " do target= de " http://www.company.com/siteproducts/products.aspx do href= do o eproducts/products.aspx de http://www.company.com/sit. abaixo é algum código I wrote.




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



global.asax

public Application_BeginRequest () {dtblVanityLinks = zero do
DataTable; strThisUrl = zero da corda do
; strSelect = zero da corda do
; arrMatches = zero do
DataRow []; strRedirectLink = zero da corda do
; dtblVanityLinks = GetVanityLinks do

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

public DataTable GetVanityLinks do
do
}} () {dstVanityLinks = zero da série de dados do
; dtblVanityLinks = zero do
DataTable; dtblVanityLinks do

= Context.Cache (“vanitylinks");
se (zero) do == dos dtblVanityLinks {dstVanityLinks do
= série de dados nova ();
dstVanityLinks.ReadXml (Server.MapPath (“VanityURLRedirects.xml”)); dtblVanityLinks do
= dstVanityLinks.Tables (0);
Context.Cache.Insert (“vanitylinks”, dtblVanityLinks, CacheDependency novo ( de Server.MapPath (“VanityURLRedirects.xml”))); dtblVanityLinks do retorno do
do
}; as idéias do


Any do
} em como conseguir isto trabalhar são extremamente appreciated.
class= do

Resposta : Ler a lima de XML em global.asax para reorientar o pedido de página corrigir a página

Você pode usar um dos módulos pre-construídos em vez da escrita ele você mesmo porque é fastidioso e sujeito a erros.

http://urlrewriter.net/

O código atualizado é afixado igualmente abaixo.
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:
    Application_BeginRequest vago (remetente do objeto, EventArgs e)
    {
        RewriteUrl ();
    }

    DataTable público GetVanityLinks ()
    {
        dstVanityLinks = zero da série de dados;
        dtblVanityLinks = zero de DataTable;

        //dtblVanityLinks = Context.Cache (“vanitylinks”);

        se (zero do == dos dtblVanityLinks)
        {
            dstVanityLinks = série de dados nova ();
            dstVanityLinks.ReadXml (Server.MapPath (“VanityURLRedirects.xml”));
            dtblVanityLinks = dstVanityLinks.Tables [0];
            Context.Cache.Insert (“vanitylinks”, dtblVanityLinks, CacheDependency novo (Server.MapPath (“VanityURLRedirects.xml”)));
        }

        dtblVanityLinks do retorno;
    }

    público RewriteUrl vago ()
    {
        dtblVanityLinks = zero de DataTable;
        strThisUrl = zero da corda;
        strSelect = zero da corda;
        arrMatches = zero de DataRow [];
        strRedirectLink = zero da corda;

        dtblVanityLinks = GetVanityLinks ();

        strThisUrl = Request.Path.ToLower ();

        se (Request.ApplicationPath! = “/")
        {
            strThisUrl = strThisUrl.Remove (0, Request.ApplicationPath.Length);
        }

        strSelect = “vanitylink = “” + strThisUrl + “” “;
        arrMatches = dtblVanityLinks.Select (strSelect, “vanitylink”);
        se (arrMatches.Length > 0)
        {
            strRedirectLink = arrMatches [0] [“redirectlink”] .ToString (); ;
            strRedirectLink = Request.ApplicationPath + strRedirectLink;

            Context.RewritePath (strRedirectLink);
        }
    }
Outras soluções  
 
programming4us programming4us