【问题标题】:Open Links via HttpHandler通过 HttpHandler 打开链接
【发布时间】:2011-10-11 07:21:50
【问题描述】:

请帮助 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。 而且我需要能够只运行特定站点的链接。

&lt;add verb="*" path="mysite.ru/*.*" type="App_Code.SyncHttpHandler"/&gt; 不工作

&lt;add verb="*" path="*.*" type="App_Code.SyncHttpHandler"/&gt;打开任何链接

【问题讨论】:

    标签: asp.net httphandler


    【解决方案1】:
    <httpHandlers>
        <add verb="*" path="*.js" validate="false" type="SyncHttpHandler" />
        <add verb="*" path="*.jpg" validate="false" type="SyncHttpHandler" />
    </httpHandlers>
    

    你可以用这个。

    【讨论】:

      【解决方案2】:

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

      下一部分将确保 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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-17
        • 2016-04-06
        相关资源
        最近更新 更多