问题描述
客户说:所有下载链接都要检查用户是否登录。我想到的办法是使用IHttpModule代码如下:voidcontext_AcquireRequestState(objectsender,EventArgse){HttpApplicationcontext=(HttpApplication)sender;stringurl=context.Request.Url.ToString().ToLower();varindex=url.LastIndexOf('.');varex=url.Substring(index,url.Length-index);if(ex=="rar"||ex=="zip"){if(string.IsNullOrEmpty(context.User.Identity.Name)){FormsAuthentication.RedirectToLoginPage();}}}
但是这样是无效的打我打开一个下载链接是并没有执行上面的代码请问是不是缺少了什么配置?
解决方案
解决方案二:
当然已经在web.config中加了如下的配置:<addname="HttpRequestModule"type="FXBTG.BLL.Web.HttpModule"/>是不是还要在<httpHandlers>添加什么?
解决方案三:
呵呵,如果你用httpmodule的话,你需要把*.*的请求也填加给asp.net的isapi去处理~~~如果你需要额外处理*.zip,*.rar,那么只添这二个也行~~httpmodule是针对于管道事件的附加的~~~httphandler是针对于不同类型的请求处理,如你这里的*.zip,*.rar个人认为你这里需要用httphandler而不是httpmodule~~~如果你一定要用,看我第一句~~
解决方案四:
说白了~~就是iis在对后缀名为*.rar,*.zip的处理的时候,没用调用你的module因为,你没有在iis中配置,需要对这种类型,也使用asp.net来处理~,iis就调用默认的处理程序处理了~~
解决方案五:
ASP.NETForm认证