.net - 使用 .Net Forms 对用户和成员进行 Umbraco 身份验证

标签 .net forms-authentication umbraco

我已经使用 .Net Forms 身份验证设置了权限,该身份验证非常适合 Umbraco 成员(member):

<!-- 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。

这一切似乎都是因为没有经过身份验证,就好像我以成员(member)身份登录,然后我以用户身份登录,它会完美地显示所有内容。相反,如果我仅以用户身份登录,则大多数内容根本看不到。

我做错了什么?

谢谢。

最佳答案

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

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

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

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

关于.net - 使用 .Net Forms 对用户和成员进行 Umbraco 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14560790/

相关文章:

.net - 我应该使用哪个 NoSQL 数据库进行日志记录?

c# - 通过默认成员身份提供程序进行 Web 服务身份验证

visual-studio-2010 - 使用 Umbraco 进行开发的首选设置

razor - 模型中缺少 Umbraco AncestorOrSelf?

.net - 如何获得 (.net) 表单将恢复到的状态?

.net - 如何检查数字是否为 .NET 中的整数?

c# - 从 MailItem (Microsoft.Office.Interop.Outlook) 获取唯一 ID?

c# - 如何防止匿名用户使用表单例份验证访问文件?

asp.net-mvc - 带有表单例份验证的 ASP.NET MVC 应用程序转到登录 url 让我得到一个 302,然后是一个 401

asp.net - 是否可以在 ASP.NET Core API 中运行 Umbraco?