asp.net – 自定义HttpModule在IIS7中集成,但不是经典模式
发布时间:2020-12-16 03:49:05 所属栏目:asp.Net 来源:网络整理
导读:我有一个用asp.net编写的应用程序,我在网站中集成了一些传统的经典asp页面.该站点使用 Windows身份验证.因为我无法管理带有角色的.asp页面,所以我编写了一个自定义HttpModule来检查用户是否有权查看这些页面,否则会重定向到“拒绝访问”页面.主要问题是应用
我有一个用asp.net编写的应用程序,我在网站中集成了一些传统的经典asp页面.该站点使用
Windows身份验证.因为我无法管理带有角色的.asp页面,所以我编写了一个自定义HttpModule来检查用户是否有权查看这些页面,否则会重定向到“拒绝访问”页面.主要问题是应用程序需要在IIS7上以“经典模式”运行.我的模块在集成模式下工作,但在经典模式下不工作.有没有理由这个代码也不能在经典模式下工作?提前致谢.
这是模块的代码,它非常简单: public class MyModule: IHttpModule { public void Init(HttpApplication application) { application.PostAuthenticateRequest += new EventHandler(Application_PostAuthenticateRequest); } void Application_PostAuthenticateRequest(object source,EventArgs e) { HttpApplication app = (HttpApplication)source; HttpContext context = ((HttpApplication)source).Context; if (context.Request.RawUrl.Contains("/protected-subfolder/")) { // gets user from windows authentication string currentUser = Convert.ToString(context.User.Identity.Name); if (!isAdmin(currentUser)) { //deny access (context.Response).Redirect(VirtualPathUtility.ToAbsolute("~/AccessDenied.aspx")); } } } public void Dispose(){ } 这是经典模式的web.config中的设置(不工作): <configuration> <system.web> <httpModules> <add name="MyModule" type="MyModule" /> </httpModules> </system.web> </configuration> 并且集成模式(工作)的设置: <configuration> <system.webServer> <modules> <add name="MyModule" type="MyModule"/> </modules> <validation validateIntegratedModeConfiguration="false" /> </system.webServer> </configuration> 解决方法
在集成模式下,IIS应用程序池允许任何请求URL进入ASP.NET ISAPI,但是,在经典模式下,您需要第三方ISAPI,否则请求将直接发送到页面.
在集成中,模块在实际请求内容之前首先进行检查. 所以: >集成模式:http://www.yoursite.com/myfile.html首先通过你的http模块和http模块和global.asax配置的路由(你的Request.Url应该有上面的URL) 希望这有助于你. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 使用Gzip在ASP.NET / IIS7中输出乱码错误页面
- ASP.NET MVC 4和Razor 2:View引擎不再支持xml?
- asp.net – 如何拒绝用户访问子文件夹和文件?
- 缺少ASP.NET 5模板
- asp.net后台cs中的JSON格式变量在前台Js中调用方法(前后台示
- 最佳实践:ASP.NET中的CSS或主题?
- asp.net-mvc – 使用web api和asp.net mvc 5进行单点登录
- asp.net-mvc – 概念类型中的成员数量不匹配 – 但确实如此
- ASP.NET OOP-关联操作符重载的操作_RelationalOperatorOver
- asp.net-core – 构建asp.net核心错误
推荐文章
站长推荐
热点阅读