Question : Lire le dossier de XML dans global.asax pour réorienter la demande de page de corriger la page

J'ai créé un dossier de xml qui a un abd d'URL de vanité l'URL de réorientation. Je veux que l'asax global lise ce dossier pour réorienter la demande de page à la page appropriée. TELLEMENT par exemple si quelqu'un saisit le rel= " nofollow " de " _blank " de target= de " http://www.company.com/products " de href= de le ducts de http://www.company.com/pro ont qui soit réorienté au rel= " nofollow " de " _blank " de target= de " http://www.company.com/siteproducts/products.aspx " de href= de le eproducts/products.aspx de http://www.company.com/sit. est-ce qu'au-dessous de un certain code I est wrote.

< ? encoding= " UTF-8 " du version= " 1.0 " de xml ? >


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



global.asax

public Application_BeginRequest () de
DataTable ; strThisUrl = nulle de corde du
; strSelect = nulle de corde du
; arrMatches = nulle du
DataRow [] ; strRedirectLink = nulle de corde du
; dtblVanityLinks = GetVanityLinks du

() ; strThisUrl du
= Request.Path.ToLower () ;
si (Request.ApplicationPath ! = « /") {strThisUrl de
= strThisUrl.Remove (0, Request.ApplicationPath.Length) ; strSelect du
du
} = « vanitylink='" + strThisUrl + « ' » ; arrMatches du
= dtblVanityLinks.Select (strSelect, « vanitylink ») ;
si (arrMatches.Length > 0) {strRedirectLink de
= arrMatches [0] [« redirectlink »] ; strRedirectLink du
= Request.ApplicationPath + strRedirectLink ; du
Context.RewritePath (strRedirectLink) ;
{dstVanityLinks = nulle du

public DataTable GetVanityLinks du
} du
} () d'ensemble de données de
; dtblVanityLinks = nulle du
DataTable ; dtblVanityLinks du

= Context.Cache (« vanitylinks") ;
si (nulle de == de dtblVanityLinks) {dstVanityLinks de
= nouvel ensemble de données () ;
dstVanityLinks.ReadXml (Server.MapPath (« VanityURLRedirects.xml »)); dtblVanityLinks du
= dstVanityLinks.Tables (0) ;
Context.Cache.Insert (« vanitylinks », dtblVanityLinks, nouveau CacheDependency (de Server.MapPath (« VanityURLRedirects.xml »))); dtblVanityLinks de retour du
du
} ; les idées du


Any du
} sur la façon dont obtenir ceci pour fonctionner est considérablement appreciated.
class= de

Réponse : Lire le dossier de XML dans global.asax pour réorienter la demande de page de corriger la page

Vous pouvez utiliser un des modules pré-construits au lieu de l'écriture il vous-même car il est pénible et sujet aux erreurs.

http://urlrewriter.net/

Le code mis à jour est également signalé ci-dessous.
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 vide (expéditeur d'objet, EventArgs e)
    {
        RewriteUrl () ;
    }

    DataTable public GetVanityLinks ()
    {
        dstVanityLinks = nulle d'ensemble de données ;
        dtblVanityLinks = nulle de DataTable ;

        //dtblVanityLinks = Context.Cache (« vanitylinks ») ;

        si (nulle de == de dtblVanityLinks)
        {
            dstVanityLinks = nouvel ensemble de données () ;
            dstVanityLinks.ReadXml (Server.MapPath (« VanityURLRedirects.xml »));
            dtblVanityLinks = dstVanityLinks.Tables [0] ;
            Context.Cache.Insert (« vanitylinks », dtblVanityLinks, nouveau CacheDependency (Server.MapPath (« VanityURLRedirects.xml »)));
        }

        dtblVanityLinks de retour ;
    }

    public RewriteUrl vide ()
    {
        dtblVanityLinks = nulle de DataTable ;
        strThisUrl = nulle de corde ;
        strSelect = nulle de corde ;
        arrMatches = nulle de DataRow [] ;
        strRedirectLink = nulle de corde ;

        dtblVanityLinks = GetVanityLinks () ;

        strThisUrl = Request.Path.ToLower () ;

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

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

            Context.RewritePath (strRedirectLink) ;
        }
    }
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us