【问题标题】:Sitecore extranet authenticationSitecore 外网身份验证
【发布时间】:2014-03-25 20:08:57
【问题描述】:

我有一个网站正在尝试迁移到我的 Sitecore 实例中。 Sitecore 实例有多个站点。对于我尝试迁移的一个站点,有一个登录页面供外部用户登录。我正在针对外部数据库验证这一点。到目前为止,这一切都有效。我的问题是我需要防止外部用户在不登录的情况下访问某些页面(他们应该被重定向到登录页面)。当站点在 Sitecore 之外时,此方法的工作方式是进行表单身份验证,并且当用户在未登录的情况下尝试访问页面时,ReturnURL 将用于在之后将用户返回到正确的页面登录。

现在我的站点核心实例中有多个站点,我不知道该怎么做。

有什么建议吗?

【问题讨论】:

    标签: asp.net sitecore


    【解决方案1】:

    这在 Sitecore 中与之前的操作没有太大区别,只是现在您可以使用 Sitecore 安全编辑器控制登录用户应该可以访问哪些页面的安全性。不过,您需要连接一些部件才能正常工作。

    通读这些文章,它们应该提供您需要的一切以使其工作:

    使用patch config 将web.config 中<setting name="NoAccessUrl" value="/sitecore/service/noaccess.aspx" /> 的值设置为您的登录页面(这可以是Sitecore 中的一个项目),如果用户尝试访问受限页面,他们将被重定向到此页面,其中还将包括返回 url 参数。

    如果您使用外部数据库对用户进行身份验证,那么您还需要实现自己的成员资格提供程序:

    确保将您的<site> 定义的domain 属性正确设置为您在domains.config 中设置的任何内容,并设置为您的<provider> 定义的providerName

    【讨论】:

    • 如果在不登录就不应访问的页面上,您是否看到任何问题,我检查用户是否已登录,如果没有,我只是将他们重定向到登录页面?这对我来说会容易得多。我阅读了“设置 Sitecore Extranet”文章,在我看来,至少当用户注册该站点时,他们需要添加到该角色才能真正登录。我认为这不是我的功能真的很想要。
    • 我没有发现任何问题,如果需要,您可以处理重定向,但您可以在用户注册时以编程方式将用户添加到必要的角色。这样一来,安全性是从 Sitecore 内部设置的,并且可以由高级用户更改,您可以根据需要添加/删除角色和内容部分,这意味着没有任何内容是硬编码的。
    • 哦,好的..感谢您的回复。谢谢你。如果我保持当前状态,我通过调用 server.urlencode 并附加登录页面的 LinkManager.GetItemUrl 来设置返回 url。问题在于登录页面的 url 如下所示:mysite/…。有没有办法让 url 看起来像一个正确的重定向 url?而不是给出整个路径?
    • 检查您的web.config 并检查您为默认LinkManager 设置的内容,尤其是alwaysIncludeServerUrl="false"。您总是可以将新的UrlOptions 传递给LinkManager.GetItemUrl,否则该值为 false。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 2020-01-24
    相关资源
    最近更新 更多