日期:2014-05-17  浏览次数:20407 次

求助!Web.config在编译环境下和在IIS下的问题
本帖最后由 sarah_jing 于 2013-03-05 11:21:17 编辑
我要做一个权限限制,于是在web.config+web.sitemap这种方法
在web.config中用
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
      <providers>
        <add name="XmlSiteMapProvider" description="Default SiteMap provider." type="System.Web.XmlSiteMapProvider " siteMapFile="web.sitemap" securityTrimmingEnabled="true"/>
      </providers>
    </siteMap>
    <roleManager enabled="true" defaultProvider="OAProvider">
      <providers>
        <add connectionStringName="OaSystemConnectionString" name="OAProvider" type="OA.OARoleProvider"/>
      </providers>
    </roleManager>
    <membership defaultProvider="OAProvider">
      <providers>
        <add connectionStringName="OaSystemConnectionString" applicationName="OA" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" passwordAttemptWindow="10" name="OAProvider" type="OA.OAMembershipProvider"/>
      </providers>
    </membership>
    
详细的权限用:
 <location path="shzx">
    <system.web>
      <authorization>
        <allow roles="shzx"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="FaceTemplate/Default.aspx">
    <system.web>
      <authorization>
        <allow roles="clshdj"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
这样的设定方式来进行权限配置。在VS2010中编译下,菜单权限都显示正常,但是在IIS中,完全显示不出来菜单了,我把后面具体的权限那块注释掉,菜单就可以出现了,请问该如何配置IIS,让菜单能出现呢
iis authorization web.config

------解决方案--------------------
调用的类有问题吧。
------解决方案--------------------
引用:
引用:调用的类有问题吧。
应该不是吧,因为在调试的状态都可以正常显示的,把源码原模原样放IIS里面就没菜单了。

那就是说明IIS的环境与调试时的环境不同。
------解决方案--------------------
那你权限就不要放在web.config里,
另外弄个XML文件写不就可以了呢?
------解决方案--------------------
不理解你为什么这么搞,可能有自己分析。

既然在IIS有问题,你用vs自己打开那个iis项目 看看什么结果。如还不行把值读到程序里看看。