Domanda

Sto usando il modulo piuttosto eccellente IIS7 Rewrite (V2), e voglio creare un RewriteProvider personalizzato che riscrive in modo diverso depeneding se il file esiste fisico.

ho creato con successo un fornitore, come in questo tutorial: http: / /learn.iis.net/page.aspx/804/developing-a-custom-rewrite-provider-for-url-rewrite-module/

Tuttavia, davvero bisogno di essere in grado di mappare l'URL di un percorso fisico - mi sarebbe normalmente fare questo via HttpContext.Current.Server.MapPath () o HostingEnvironment.MapPath (), ma sembra che il HttpContext non è stato inizializzata (almeno entro l'attuale dominio di App - dal momento che il modulo di riscrittura è il codice nativo, sto avendo difficoltà a lavorare fuori dove posso trovare queste informazioni).

Non voglio veramente avere ricorrere a creare il mio modulo di riscrittura per aggirare questo problema - Qualcuno ha qualche indizio per me

?

Grazie! Mark.

È stato utile?

Soluzione

Non sarà in grado di arrivare ad essa con quelle API in quanto le piste di codice in un dominio di applicazione diverso da quello ASP.NET sta usando.

L'unico modo che posso pensare di fare questo lavoro è quello di passare la variabile a destra Server che include il percorso fisico al proprio interno e fare un Path.Combine () voi stessi.

Quindi, ammesso che abbiate un'estensione chiamata YourProvider che si sta chiamando in qualche modo simile a questo: {YourProvder: {URL}}

Si può fare: {YourProvder: {APPL_PHYSICAL_PATH} | {URL}}

È ora possibile ottenere il percorso fisico e l'URL separati da un tubo | , Assicurarsi di passare il percorso fisico prima da quando l'URL è nel controllo degli utenti esterni che non si desidera loro di ingannare l'utente ad ottenere un percorso fisico diverso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top