zoukankan      html  css  js  c++  java
  • web.config小技巧

    一、应用身份验证、但个别目录或文件不需要身份验证
     最常见的是一个网站的后台需要验证,而前台是不需要的;一般登录页面会有验证码、而生成验证码那个页面是不需要验证的、否则验证图片是显示不出来的。
    解决方法:
    <system.web>
          
    <!-- 身份验证 -->
          
    <authentication mode="Forms">
            
    <forms name=".myForm" loginUrl="login.aspx" timeout="20" protection ="All"/>
          
    </authentication>
          
    <authorization >
            
    <deny users ="?"/>
          
    </authorization>
        
    </system.web>
      
    <!-- 验证码 -->
      
    <location path ="CheckCode.aspx">
        
    <system.web >
          
    <authorization >
            
    <allow users ="*"/>
          
    </authorization>
        
    </system.web>
      
    </location>
    使用身份验证、禁止匿名用户访问,同时对页面checkcode.aspx允许所有用户访问、即不用验证。

    二、改写(不需求)web.config继承
    假设IIS中有个站点A、而A站点下面有个虚拟目录B、此时可以输入:"ttp://ip址/"  访问到A站点,输入http://ip地址/B 访问到B网站;而B项目中的web.config首先会继承A站点的web.config,如果A的config有很多设置如<httpModules>,<page>等,而B项目的config没有这些设置,项目也没用到这些设置,但B的程序在运行时确会出错、原因就是它继承A的config;这个让人有点讨厌“我压根没用它、怎么会有错?且提示出错的那个文件是A的config”,可以这样解决:
    A项目用到了主题
    <pages enableEventValidation="false" validateRequest="false" theme="default">
    B项目不用
    <pages enableEventValidation="false" validateRequest="false" theme="">
    让B的主题为空、否则B运行时提示找不到default主题目;

    A的设置
     <httpModules>
              
    <add name="SiteCache" type="SiteCache"/>
            
    </httpModules>
    B的设置(不用的项,清除)
     <httpModules>
         
    <clear/>
     
    </httpModules>
    如果A.B都用到
    <appSettings>
      
    <add key="app" value="" />
    </appSettings>
    B运行时会提示app已经加载,此时可以
    <appSettings>
      
    <remove name="app" />
      
    <add key="app" value="" />
    </appSettings>
    或者:
    <appSettings>
      
    <clear />
      
    <add key="app" value="" />
    </appSettings>

    三、禁止web.config重写
    同上面的例子、如果B中的config设置必须与A中的相同,不能重写,则A的config设置
        <location path="B" allowOverride="false">
          
    <system.web>
            
    <httpModules>
              
    <add name="SiteCache" type="SiteCache"/>
            
    </httpModules>
          
    </system.web>
      
    </location>
    此时B的config中<httpModules>设置不能改写,须和A的设置相同。
  • 相关阅读:
    Spring Boot 使用 Dom4j XStream 操作 Xml
    Spring Boot 使用 JAX-WS 调用 WebService 服务
    Spring Boot 使用 CXF 调用 WebService 服务
    Spring Boot 开发 WebService 服务
    Spring Boot 中使用 HttpClient 进行 POST GET PUT DELETE
    Spring Boot Ftp Client 客户端示例支持断点续传
    Spring Boot 发送邮件
    Spring Boot 定时任务 Quartz 使用教程
    Spring Boot 缓存应用 Memcached 入门教程
    ThreadLocal,Java中特殊的线程绑定机制
  • 原文地址:https://www.cnblogs.com/chy710/p/647537.html
Copyright © 2011-2022 走看看