通过HttpHandler打开链接

时间:2011-10-11 07:21:51

标签: asp.net httphandler

请帮助HttpHandler

有一个HttpHandler处理到mysite.ru的链接。

在Web.Config中注册如下:

<configuration>
   <system.web>
     <httpHandlers>

       <add verb="*" path="mysite.ru" type="App_Code.SyncHttpHandler"/>

     </httpHandlers>
   </system.web>
</configuration>

现在通过Handler只打开表单的引用:

mysite.ru
mysite.ru/struct/
mysite.ru/articles/

如何使处理程序拦截和处理表单的链接:

mysite.ru/files/images/img.jpg
mysite.ru/files/scripts/script.js


如果我这样写,你可以运行任何链接,包括SyncHttpHandler / Google.ru。 我需要能够只运行特定网站的链接。

<add verb="*" path="mysite.ru/*.*" type="App_Code.SyncHttpHandler"/>不起作用

<add verb="*" path="*.*" type="App_Code.SyncHttpHandler"/>打开任何链接

2 个答案:

答案 0 :(得分:0)

<httpHandlers>
    <add verb="*" path="*.js" validate="false" type="SyncHttpHandler" />
    <add verb="*" path="*.jpg" validate="false" type="SyncHttpHandler" />
</httpHandlers>

你可以使用它。

答案 1 :(得分:0)

通常,IIS通过自己的静态文件处理程序处理所有静态文件。因此,您需要首先配置IIS以将此路径下的所有文件(扩展)传递给ASP.NET运行时。确切的步骤(尽管类似)将取决于IIS版本 - 例如,请参阅IIS {的here

下一部分将确保ASP.NET运行时将所有这些请求传递给您的处理程序。因此,我认为您的配置应该可以工作,但如果没有,那么尝试使用通配符。例如,

 <add verb="*" path="mysite.ru/*.*" type="App_Code.SyncHttpHandler"/>

或者,

<location path="mysite.ru" >
 <system.web>
   <add verb="*" path="*.*" type="App_Code.SyncHttpHandler"/>
 </system.web>
</location>