【问题标题】:web.config and authentification, authorization, locationweb.config 和身份验证、授权、位置
【发布时间】:2011-10-24 02:29:13
【问题描述】:

我正在寻找创建一个 web.config 文件,但我对哪个标签的顺序有点困惑。我有 2 个角色:测试人员和预览人员。

这是我想要做的:

1) 使用带有 url "Login.aspx" 的表单身份验证标签

2) 使用位置标签表示目录 /AppPages 和 /AppServices 仅供测试人员访问(即拒绝 *、?、预览者并仅允许经过身份验证的测试人员,拒绝其他所有人)

3) 使用位置标签表示目录 /Scripts 和 /Styles 仅供测试人员和预览人员访问,并拒绝其他所有人

4) 如何使所有尝试查看 /AppPages 或 /AppServices 页面的预览者重新路由到自定义页面。

我有以下 web.config 文件:

<system.web>

  <connectionStrings>
    ...............
  </connectionStrings>

  <roleManager enabled="true"/>

  <authentication mode="Forms">    
     <forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH">
     </forms>
  </authentication>

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

  <location path="AppPages"> //same for AppServices
    <system.web>
      <authorization>
        <deny users="*" />
            <deny users="?"/>
        <allow roles="tester" />
        <deny roles="previewers" />
      </authorization>
    </system.web
  </location>

  <location path="Scripts"> //same for Styles
    <system.web>
      <authorization>
          <allow roles="previewers" />
          <allow roles="tester" />
          <deny users="?"/>
      </authorization>
    </system.web>
  </location>

</system.web>

我希望将所有用户重定向到预览页面,如果用户以测试人员身份登录,那么他将能够进入应用页面,而预览人员则不能。

感谢您的建议。

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    关于不同的登录页面...据我所知,在 asp.net 中没有直接简单的方法可以做到这一点。您可以采取多种途径来实现它:-) 这是一篇概述一个相当简单的解决方案.. http://forums.asp.net/t/1348477.aspx

    就授权规则而言,它有点像带有中断的 switch 语句。访问网站时应用于当前用户状态的第一条规则是应用的规则,它不再处理...例如这个

    <deny users="*" />
    <deny users="?"/>
    <allow roles="tester" />
    <deny roles="previewers" />
    

    应该会去

    <deny users="?"/>
    <allow roles="tester" />
    <deny users="*" />
    

    否则第一行无论如何都会拒绝所有人。

    http://msdn.microsoft.com/en-us/magazine/cc301390.aspx

    【讨论】:

    • 谢谢。位置标签呢?它的顺序重要吗,我把它按正确的顺序了吗?
    • 不要将那些包含在现有的 标签中,它们只是作为配置元素的子元素 ..... ... ... 或者您可以将 web.config 文件放在特定目录中并在那里指定授权信息。
    猜你喜欢
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 2014-11-13
    相关资源
    最近更新 更多