标签: httpmodule

HttpModule 中的 PreSendRequestHeaders 替代方案

根据 Asp.Net 团队提供的信息What not to do in Asp.net you should not use PreSendRequestHeadersin a Managed HttpModule。

PreSendRequestHeaders 和 PreSendRequestContext

建议:不要将这些事件与托管模块一起使用。

PreSendRequestHeaders 和 PreSendRequestContext 事件可与本机 IIS 模块一起使用,但不能与实现 IHttpModule 的托管模块一起使用。设置这些属性可能会导致异步请求出现问题。

这正是我在图像处理库中所做的中所做的,以确保随响应一起发送正确的 mime 类型。

推荐的替代方法是什么?

c# asp.net httpmodule

3
推荐指数
1
解决办法
2732
查看次数

将 HttpModule .Net 类库移植到 .Net Core Web API

我正在将一个项目从 .net Web 应用程序迁移到 .Net 核心 Web API。

我在 IIS 集成模式下使用 HTTP 模块,它是 .net 框架类库。

因此,考虑按原样移植到我的新核心应用程序。

我将 web.config 粘贴到我的新核心应用程序并添加了对该 Http 模块的项目引用,然后它就开始工作了。

我的 BeginRequest 方法中有一些 Context.Response.Write,每当我调用我的 web api 时,我都可以看到这些行。

但是,我在这里有一些问题。

  1. 模块中没有断点。
  2. 我认为没有加载符号,所以我查看了 VS 中的模块窗口,但没有加载这样的模块。
  3. 当非核心项目加载到核心项目时加载符号的任何方式。
  4. 想知道如何在不加载引用的情况下调用模块。

有人可以分享以上几点的一些意见。

谢谢。

.net c# httpmodule .net-core asp.net-core-webapi

3
推荐指数
1
解决办法
3133
查看次数

在HttpModule中渲染页面?

任何人都知道如何在HttpModule中呈现一个aspx页面并将其流回浏览器?

asp.net httphandler httpmodule

2
推荐指数
1
解决办法
1200
查看次数

HTTPModule BeginRequest应该是Response.Redirect或Server.Transfer

我们有一个URLRewriting模块,它使用BeginRequest事件方法中的Response.Redirect来更改目标页面.

  • 使用Server.Transfer或Server.TransferRequest而不是Response.Redirect会更好吗?
  • 解决方案中还有其他HTTP模块,我是否会通过使用Server.Transfer绕过任何其他模块,或者服务器是否会像新请求一样开始,只是保存到浏览器的往返?
  • 客户是否会注意到任何差异,服务器是否会以不同方式处理请求?

以下问题涵盖重定向和传输之间的差异,但不包括HTTP模块中的差异;

编辑: HttpContext.RewritePath也在模块中使用,所以我们似乎有三种技术可以从原始路径移动初始请求; 分别是Redirect,Transfer,RewritePath; 返回浏览器,返回HTTP管道的开始并继续处理新路径.

asp.net url-rewriting httpmodule

2
推荐指数
1
解决办法
6842
查看次数

IIS7将web.config从经典迁移到集成问题

我有一个定义自定义httpmodule的web服务.我正在尝试将此Web服务启动到运行IIS7的生产服务器上,但只能使其在经典模式下运行.

我试过移动这一节

 <system.web>
<httpModules>
  <add name="BasicAuthenticationModule" type="MyProject.UserAuthenticator.UserNameAuthenticator" />
</httpModules>
...
Run Code Online (Sandbox Code Playgroud)

像这样的system.webserver部分:

  <system.webServer>
<modules runAllManagedModulesForAllRequests="true">
  <add name="BasicAuthenticationModule" type="MyProject.UserAuthenticator.UserNameAuthenticator" />
</modules>
Run Code Online (Sandbox Code Playgroud)

当我尝试这个IE给我这个错误:

  Config Error
  Cannot add duplicate collection entry of type 'add' with unique key attribute 'name' set to          
  'BasicAuthenticationModule' 
Run Code Online (Sandbox Code Playgroud)

我还尝试使用以下DOS命令自动迁移:

  appcmd migrate config "mysite/"
Run Code Online (Sandbox Code Playgroud)

并收到此消息:

  The module BasicAuthenticationModule with type "mytype" is already present in the application with a different type"", and was not migrated
Run Code Online (Sandbox Code Playgroud)

我不是IIS专家,所以任何见解都表示赞赏.


因此,经过一些研究后,似乎已经存在一个名为BasicAuthenticationModule的本机模块.我可以通过重命名我的模块"BasicCustomAuthenticationModule"来消除我的问题.这是正确的方法还是应该删除另一个?

谢谢!AFrieze

iis-7 iis-6 module httpmodule

2
推荐指数
1
解决办法
2888
查看次数

在Asp.Net 4.0中部署HttpModule的问题

我想做UrlRewriting.为了做到这一点,我编写了一个HttpModule,它运行在AuthorizeRequestASP.NET Http Modules链中的事件上(在HttpHandler处理请求之前).

上下文

我写了一个抽象类作为实现IHttpModule接口的基本重写器:

public abstract class BaseModuleRewriter : IHttpModule {
  public virtual void Init(HttpApplication app) {
    // WARNING! This does not work with Windows authentication!
    app.AuthorizeRequest += new ventHandler(this.BaseModuleRewriter_AuthorizeRequest);
  }
  public virtual void Dispose() { }
  protected virtual void BaseModuleRewriter_AuthorizeRequest(object sender, EventArgs e) {
    HttpApplication app = (HttpApplication)sender;
    this.Rewrite(app.Request.Path, app);
  }
  protected abstract void Rewrite(string requestedPath, HttpApplication app);
}
Run Code Online (Sandbox Code Playgroud)

该模块的真正实现是以下类:

public class ModuleRewriter : BaseModuleRewriter {
  protected override void Rewrite(string requestedPath, System.Web.HttpApplication app) { …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net httpmodule

2
推荐指数
1
解决办法
2893
查看次数

使用ASP.net MVC从不同的目录路由静态文件,而不进行IIS更改和身份验证

让我留下来为我的应用程序的单个用户存储内容:

  • C:\文件{GUID} \

这些文件可能是这样的:

  • C:\文件{GUID}\bunny.jpg
  • C:\文件{GUID}\unicorn.html

最终用户应该看到一个"友好"的网址.

http:// domain.com/files/{GUID}/bunny.jpg

该URL必须以某种方式通过控制器或httpmodule或thingIdontknow才能被授权查看该文件.这些权限可能每天都在变化,因此需要经常检查文件的权限.

从我读过的内容来看,这完全是可能的,但我不确定接下来要编码什么,或者有人在这里有任何见解.HttpModule还是Controller?我很困惑需要发生什么.

asp.net-mvc mvcroutehandler httpmodule asp.net-mvc-routing asp.net-mvc-3

2
推荐指数
1
解决办法
3050
查看次数

无法使用基本身份验证进行身份验证

我有一个ASP.NET WebApi服务,需要http基本身份验证(这是为了演示,而不是生产,所以这是基本身份验证的原因,而不是更安全的东西).Visual Studio IIS Express服务器运行良好,并通过自定义HTTP模块进行身份验证.

当我将站点部署到托管服务器时,它会失败并继续弹出登录屏幕.我向Fiddler验证了正在发送请求并且正在发送凭据.但它继续响应401未经授权的响应.似乎请求凭据在从客户端到服务器的时间内以某种方式丢失.我花了很多时间来尝试诊断这一点,使用Web API和IIS进行.NET身份验证似乎非常混乱.请帮忙!!

来自Fiddler的传出请求显示:

获取mywebsiteaddress HTTP/1.1
主机:我的网站地址
User-Agent:Mozilla/5.0(Windows NT 6.1; WOW64; rv:21.0)Gecko/20100101 Firefox/21.0
接受:/
Accept-Language:en-US,en; q = 0.5
Accept-Encoding:gzip,deflate
授权:基本YmJvbm5ldDE4Om9jdG9iZXIxNw ==
X-Requested-With:XMLHttpRequest
Referer:mysite
连接:keep-alive

以下是我的配置的相关部分(如果需要,我可以发布更多):

<modules>
  <add name="BasicAuthHttpModule" type="ITMService.Modules.BasicAuthHttpModule"/>
</modules>

<httpModules>
  <add name="BasicAuthHttpModule" type="ITMService.Modules.BasicAuthHttpModule"/>
</httpModules>

<authentication mode="Windows"/>
Run Code Online (Sandbox Code Playgroud)

我的自定义http模块(在visual studio的测试中工作正常).这主要取自asp.net上示例:

namespace ITMService.Modules
{
public class BasicAuthHttpModule : IHttpModule
{

    private const string Realm = "www.mysite.net";

    public void Init(HttpApplication context)
    {
        context.AuthenticateRequest += OnApplicationAuthenticateRequest;
        context.EndRequest += OnApplicationEndRequest;

    }

    private static void SetPrincipal(IPrincipal principal) …
Run Code Online (Sandbox Code Playgroud)

.net authentication iis httpmodule asp.net-web-api

2
推荐指数
1
解决办法
9361
查看次数

Sitecore HttpModules第二次初始化

我们正在经历突发瞬间的CPU峰值.检查我们的Sitecore日志后,我注意到有很多日志条目"11:49:26正在初始化INFO HttpModule".据我所知,这应该仅在应用程序启动时初始化.这仍然在应用程序启动后出现.我对吗?如果是这样,这些模块可以在哪里第二次初始化?

performance sitecore httpmodule cpu-usage ihttpmodule

2
推荐指数
1
解决办法
2535
查看次数

HttpModule vs DelegatingHandler - 优点/缺点?

我正在尝试在ASP.NET WebAPI项目中记录整个传入请求和传出响应.虽然我同意DelegatingHandler,但我的雇主坚持使用HttpModule.你怎么向她解释,为什么我们应该使用DelegatingHandler而不是HttpModule?还是我错了?

c# httpmodule asp.net-web-api asp.net-web-api2 delegatinghandler

2
推荐指数
1
解决办法
929
查看次数