2

我已经使用 .Net Forms Authentication 设置了权限,该权限非常适合 Umbraco 成员:

<!-- Public access permissions -->
<location path="scripts"><system.web><authorization><allow users="?"/></authorization></system.web></location>
<location path="images"><system.web><authorization><allow users="?"/></authorization></system.web></location>
<location path="css"><system.web><authorization><allow users="?"/></authorization></system.web></location>
<location path="umbraco"><system.web><authorization><allow users="?"/></authorization></system.web></location>

<system.web>
  <authentication mode="Forms">
    <forms name="yourAuthCookie" loginUrl="login.aspx" protection="All" path="/" />
  </authentication>
  <authorization>
      <deny users="?"/>
  </authorization>
</system.web>

因此,除非他们验证自己的身份,否则成员将无法访问该站点,脚本和样式除外,以便可以正确查看登录页面。

当我尝试验证用户(在 Umbraco 中是指使用 CMS 的用户,而不是刚刚访问该站点的用户)时,问题就出现了。我试图让 umbraco/ 文件夹和 umbraco/login.aspx 等打开,但它没有正确显示 cms。

这一切似乎都是因为没有通过身份验证,好像我先以会员身份登录,然后以用户身份登录,它会完美显示一切。相反,如果我仅以用户身份登录,则大部分内容根本看不到。

我究竟做错了什么?

谢谢。

4

2 回答 2

2

我认为你从错误的角度来处理这个问题。您可以通过 Umbraco UI 控制公共访问 - 无需修改 web.config。

  1. 确保您已设置至少一个成员组
  2. 右键单击“主页”节点并选择“公共访问”
  3. 从可用选项中选择“基于角色的保护”
  4. 选择成功验证后允许访问您的站点的成员组(角色)。
  5. 选择您的登录和错误页面并点击更新。

以下视频应有助于演示实现您所要求的基本步骤:

http://umbraco.com/help-and-support/video-tutorials/umbraco-fundamentals/members/role-based-protection/TVPlayer

于 2013-01-29T08:03:32.017 回答
0

由于没有人回答我会说我发现将这些文件夹添加到我向公众开放的文件夹中似乎目前可以很好地解决问题,也许我将来需要添加其他东西但是它似乎正在工作:

<location path="umbraco"><system.web><authorization><allow users="?"/></authorization></system.web></location>
<location path="umbraco_client"><system.web><authorization><allow users="?"/></authorization></system.web></location>
<location path="DependencyHandler.axd"><system.web><authorization><allow users="?"/></authorization></system.web></location>

我在根目录中添加了 umbraco 的文件夹和一个名为 DependencyHandler.axd 的虚拟文件。

不过,如果有人知道更好的解决方案,请不要犹豫,炫耀一下。

于 2013-01-28T15:52:21.410 回答