关于Forms验证问题(html文件无法验证?)

hypozhong 2009-03-20 05:42:30
我使用了Forms方式认证,能够正常工作。但是在需要验证目录中有htm,html文件,
经过测试,这些文件不受验证,匿名用户可以随时访问。
有没有什么方法可以配置??????
...全文
144 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lextm 2009-03-22
  • 打赏
  • 举报
回复
在IIS旧版本中使用ls提到的解决方法就好了。

到了IIS 7及以上版本,在Integrated模式的应用程序池中就可以给所有内容使用Forms认证方式了。
orain 2009-03-22
  • 打赏
  • 举报
回复
IIS 设置了吗?
hypozhong 2009-03-22
  • 打赏
  • 举报
回复
感谢 orain 的帮助,还有ynw506 的关注。
我按照orain的配置修改了web.config,可是不起作用。。。。。这是怎么回事?
下面是我的web.config配置,除了appSetting删掉外其他的都在,

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<connectionStrings/>
<system.web>
<customErrors mode="Off"/>

<globalization requestEncoding="gb2312" responseEncoding="gb2312" />
<compilation debug="true">
<assemblies>
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
</assemblies>
<buildProviders>
<add extension=".htm" type="System.Web.Compilation.PageBuildProvider"/>
<add extension=".html" type="System.Web.Compilation.PageBuildProvider"/>
</buildProviders>
</compilation>

<authentication mode="Forms">
<forms name="CCIC.COOK"
loginUrl="UserBox/login.aspx"
protection="All"
path="/"/>
</authentication>
<authorization>
<allow users="*"/>
</authorization>

<pages validateRequest="false" />

<httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="102400" executionTimeout="900"/>
<httpModules>
<add name="WebbHttpModule" type="Cms.FileUpload.WebbHttpModule, Cms.FileUpload"/>
</httpModules>
<httpHandlers>
<add verb="*" path="progress.ashx" type="Cms.FileUpload.WebbUploadStatusHandler, Cms.FileUpload"/>
<add verb="*" path="*.htm" type="System.Web.UI.PageHandlerFactory"/>
<add verb="*" path="*.html" type="System.Web.UI.PageHandlerFactory"/>
</httpHandlers>
</system.web>

<location path="_ygtd">
<system.web>
<authorization>
<allow roles="szsfgs"/>
<deny users="*"/>
</authorization>
</system.web>
</location>


</configuration>
hypozhong 2009-03-22
  • 打赏
  • 举报
回复
我的IIS是6.0,配置过程中不是很顺畅,也不稳定。

貌似要把”确认文件是否存在“这个复选框取消,否则验证页面都打不开。
hypozhong 2009-03-22
  • 打赏
  • 举报
回复
感谢大家帮助,是我没有在IIS中添加htm,html的映射,问题解决。感谢各位!!!!!
谢谢Orain,我没多少分,请笑纳吧,呵呵。
orain 2009-03-21
  • 打赏
  • 举报
回复
搞定了,原来是没注册 HttpHandler,还有需要提供 buildProviders,在 Web.config 中设置,在 <system.web> 下的 <httpHandlers> 中增加一行
<add verb="*" path="*.htm" type="System.Web.UI.PageHandlerFactory"/>
然后在 <system.web> 下的 <compilation> 下添加
<buildProviders>
  <add extension=".htm" type="System.Web.Compilation.PageBuildProvider"/>
</buildProviders>
这下就可以了。
orain 2009-03-21
  • 打赏
  • 举报
回复
哈,刚试了下,第一种方式可行。但第二种方式验证是生效了,但登录后页面显示不出来了
orain 2009-03-21
  • 打赏
  • 举报
回复
默认情形下,静态文件都是由 IIS 处理的,换句话说,也就是像图像、文本或是 htm 文件等 IIS 都不会转交给 ASP.NET 处理,所以你的验证当然就失效了。解决你说的这个问题有两个办法
一是将 htm 文件命名为 aspx 文件,这是最简单的办法,虽然不正规
二是对 IIS 进行设置:在 IIS 里找到你的应用程序,查看属性“虚拟目录”,在“应用程序设定”里有一个按钮“设定”,点击以后在“对应”选项卡中将后缀 ".htm" 和 ".html" 与 ASP.NET 的处理程序 aspnet_isapi.dll 对应起来。然后你再回来看,验证就已经生效了。
RHCL 2009-03-21
  • 打赏
  • 举报
回复
~~没有吧...贴你代码看看.正常来说,使用此方式只要是指定目录访问,身份标识不正确的都要求验证
hypozhong 2009-03-21
  • 打赏
  • 举报
回复
up

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧