Sitecore - 需要登录

时间:2015-06-19 19:58:12

标签: asp.net sitecore

因此,对于我的Sitecore网站,我试图让用户登录,并且无法使用Extranet \ Annoymous帐户。我已阅读并试过

Implementing Sitecore Extranet login on a website

但我错过了一些东西,asp表单身份验证有副问题,它会将您返回到原始页面,从而忽略用户对桌面或页面编辑器的选项。

我感到沮丧的部分是,这个逻辑似乎已经内置在SiteCore中。例如,如果我尝试转到http://site/sitecore/shell并且我未登录网站核心,则会将我重定向到登录页面。那么如何才能为我的整个网站启用此功能。

更新

我的安全编辑器看起来像这样 enter image description here enter image description here

即使我取消保护sitecore对象并拒绝访问主对象 我仍然可以访问该网站。 enter image description here

在web.config中,我的网站部分如下所示

<sites>
  <site name="shell" virtualFolder="/sitecore/shell" physicalFolder="/sitecore/shell" rootPath="/sitecore/content" startItem="/home" language="en" database="core" domain="sitecore" loginPage="/sitecore/login" content="master" contentStartItem="/Base" enableWorkflow="true" enableAnalytics="false" analyticsDefinitions="content" xmlControlPage="/sitecore/shell/default.aspx" browserTitle="International" htmlCacheSize="2MB" registryCacheSize="3MB" viewStateCacheSize="200KB" xslCacheSize="5MB" disableBrowserCaching="true" />
  <site name="login" virtualFolder="/sitecore/login" physicalFolder="/sitecore/login" enableAnalytics="false" database="core" domain="sitecore" disableXmlControls="true" />
  <site name="admin" virtualFolder="/sitecore/admin" physicalFolder="/sitecore/admin" enableAnalytics="false" enableWorkflow="true" domain="sitecore" loginPage="/sitecore/admin/login.aspx" />
  <site name="service" virtualFolder="/sitecore/service" physicalFolder="/sitecore/service" />
  <site name="modules_shell" virtualFolder="/sitecore modules/shell" physicalFolder="/sitecore modules/shell" rootPath="/sitecore/content" startItem="/home" language="en" database="core" domain="sitecore" content="master" enableAnalytics="false" enableWorkflow="true" />
  <site name="modules_website" virtualFolder="/sitecore modules/web" physicalFolder="/sitecore modules/web" rootPath="/sitecore/content" startItem="/home" language="en" database="web" domain="extranet" allowDebug="true" cacheHtml="true" />
  <site name="website" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" startItem="/Base" database="web" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false" loginPage="/sitecore/login/Default.aspx" />
  <site name="scheduler" enableAnalytics="false" domain="sitecore" cacheMedia="false" />
  <site name="system" enableAnalytics="false" domain="sitecore" />
  <site name="publisher" domain="sitecore" enableAnalytics="false" enableWorkflow="true" />
</sites>

我知道我登录的是谁,因为我已将其添加到我的主页

<asp:Label ID="Id" runat="server"><%=HttpContext.Current.User.Identity.Name%></asp:Label>

2 个答案:

答案 0 :(得分:4)

解决方案是添加

requireLogin="true" 

到网站“网站”标签

<site name="website" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" startItem="/Base" database="web" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false" requireLogin="true" loginPage="/sitecore/login/Default.aspx" />

答案 1 :(得分:1)

在Sitecore安全编辑器中,拒绝对​​外部网\匿名的主页项的读取访问权限,并授予对特定用户/角色的访问权限。同时在Web.config中指定“登录”页面,以便在经过身份验证的会话不存在时重定向用户。