Asp.net 如何调用本地HTTP处理程序

Asp.net 如何调用本地HTTP处理程序,asp.net,httphandler,Asp.net,Httphandler,我有一个HTTPHandler,它返回一个图像或一些文本,并希望从本地web应用程序调用它 一种方法是创建一个WebClient并将其指向处理程序,然后以这种方式下载数据,但在生产环境中打开身份验证时会出现问题,而且似乎效率不高。有更好的方法吗 我之所以尝试这样做,是因为我有一个页面,可以将其他来源的内容注入面板中,其中一些资源是本地的(对于web应用程序),而另一些是远程的,我希望有一个解决方案可以涵盖所有可能的情况,这样我就可以相当轻松地更改源代码 将代码从处理程序提取到单独的程序集 在具有

我有一个HTTPHandler,它返回一个图像或一些文本,并希望从本地web应用程序调用它

一种方法是创建一个WebClient并将其指向处理程序,然后以这种方式下载数据,但在生产环境中打开身份验证时会出现问题,而且似乎效率不高。有更好的方法吗

我之所以尝试这样做,是因为我有一个页面,可以将其他来源的内容注入面板中,其中一些资源是本地的(对于web应用程序),而另一些是远程的,我希望有一个解决方案可以涵盖所有可能的情况,这样我就可以相当轻松地更改源代码

  • 将代码从处理程序提取到单独的程序集
  • 在具有HTTP处理程序的项目中引用此程序集,并使该处理程序仅调用共享代码
  • 在web应用程序项目中引用此程序集

  • 您可能希望为您的web应用创建一个提供者,该提供者将在proc中使用程序集或转到远程站点。

    最简单的方法之一是链接内容,即使用html元素,如image、Iframe,并将其源指向相关处理程序。只要可以从客户端/浏览器访问URL,它就可以与本地和远程处理程序一起工作

    如果您必须获取内容以进行某种处理等,那么您可以使用
    WebClient
    下载内容-它无论如何都支持基于HTTP的身份验证方案(包括windows/集成身份验证),因此不应该成为问题


    如果您想优化本地处理程序的流程,那么您可能需要为内容提供者抽象接口-您可以有两个实现(一个使用WebClient获取远程内容,另一个可能直接使用本地处理程序类的本机API获取内容).

    Edit:我在IIS身份验证方面遇到问题的原因是我没有将IIS Windows身份验证作为一种可能的方法,它只是简单的身份验证(我想这就是表单身份验证?)如果您使用的是WebClient,则必须模拟FormsAuthentication,即发出与登录表单相同的POST请求,并在后续请求中使用auth cookie。但总的来说,这可能很棘手,更不用说需要一些证书了。谢谢Jakub,这很有帮助,我给了VinayC一些分数,因为他的答案稍微完整一些。如果我能做到,我会把你们俩都记下来。。。