【问题标题】:IIS 7.5 and AuthorisationIIS 7.5 和授权
【发布时间】:2011-11-11 20:24:02
【问题描述】:

我有一个曾经在 iis6 下工作的 asp.net/silverlight 网站。我们正在升级到 iis7.5,但我无法让它正常工作。

基本上之前,网站设置了表单授权,整个网站设置为拒绝所有用户。然后我将登录页面、图像和 default.aspx 文件设置为匿名访问。都很好。

我还在其他文件夹上设置了角色安全设置。用户登录后,他们将获得自己的角色,并且能够访问他们有权访问的文件夹。

在 7.5 中几乎没有任何工作。我已经关注了网络上的所有信息,但无济于事。谁能帮忙

这是我的 web.config 文件的部分

    <authentication mode="Forms">
        <forms loginUrl="login.aspx" requireSSL="false" timeout="30" />
    </authentication>

    <authorization>
        <deny users="?" />
    </authorization>


<location path="images">
    <system.webServer>
        <security>
        <authorization>
                    <add accessType="Allow" users="*" />
        </authorization>
        </security>
    </system.webServer>
</location>

<location path="default.aspx">
    <system.webServer>
        <security>
        <authorization>
                    <add accessType="Allow" users="*" />
        </authorization>
        </security>
    </system.webServer>
</location>

<location path="www">
    <system.webServer>
        <security>
        <authorization>
                    <add accessType="Allow" users="*" />
        </authorization>
        </security>
    </system.webServer>
</location>

<location path="manuals/customer">
    <system.webServer>
        <security>
        <authorization>
            <add accessType="Allow" users="" roles="man_customer" />
            <add accessType="Deny" users="*" />
        </authorization>          
        </security>
    </system.webServer>
</location>

<location path="manuals/msa">
    <system.webServer>
        <security>
        <authorization>
            <add accessType="Allow" users="" roles="man_msa" />
            <add accessType="Deny" users="*" />
        </authorization>          
        </security>
    </system.webServer>
</location>


<location path="documents/msa">
    <system.webServer>
        <security>
        <authorization>
            <add accessType="Allow" users="" roles="doc_msa" />
            <add accessType="Deny" users="*" />
        </authorization>          
        </security>
    </system.webServer>
</location>

<location path="documents/admin">
    <system.webServer>
        <security>
        <authorization>
            <add accessType="Allow" users="" roles="doc_admin" />
            <add accessType="Deny" users="*" />
        </authorization>          
        </security>
    </system.webServer>
</location>

<location path="documents/customer">
    <system.webServer>
        <security>
        <authorization>
            <add accessType="Allow" users="" roles="doc_customer" />
            <add accessType="Deny" users="*" />
        </authorization>          
        </security>
    </system.webServer>
</location>

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules>
          <remove name="FormsAuthentication" /> 
          <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" /> 
          <remove name="UrlAuthorization" /> 
          <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" /> 
          <remove name="DefaultAuthentication" /> 
          <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" /> 
          <remove name="RoleManager" /> 
          <add name="RoleManager" type="System.Web.Security.RoleManagerModule" /> 
          <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

    </modules>
    <handlers>
        <remove name="WebServiceHandlerFactory-Integrated" />
        <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </handlers>
    <security>
        <authorization>
            <remove users="*" roles="" verbs="" />
            <add accessType="Allow" users="?" />
        </authorization>
    </security>
    <defaultDocument>
        <files>
            <clear />
            <add value="default.aspx" />
        </files>
    </defaultDocument>
</system.webServer>

当网站启动时,它最初会重定向到 login.aspx 文件。无法访问 images 文件夹中的图像。

【问题讨论】:

    标签: asp.net forms-authentication iis-7.5


    【解决方案1】:

    不确定你是如何让它在 IIS 6 上运行的,但我在 IIS 7.5 上运行了类似的东西,而我的 web.config 看起来有点不同。试试这个:

    <system.web>
      <authentication mode="Forms">
        <forms loginUrl="login.aspx" requireSSL="false" timeout="30" />
      </authentication>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
    
    <location path="images">
      <system.web>
        <authorization>
          <allow users="*"/>
        </authorization>
      </system.web>
    </location>
    

    【讨论】:

    • 很奇怪。我添加了上述内容并再次工作,但是这些角色不起作用。我将角色改回 iis 7.5 版本,它们开始正常工作。非常非常奇怪
    猜你喜欢
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 2015-10-10
    • 2012-11-07
    • 1970-01-01
    • 2016-08-06
    • 2015-04-10
    • 1970-01-01
    相关资源
    最近更新 更多