2015-08-17 4 views
2

У меня установлен Sitecore 6.6. Я хотел добавить новый домен в Sitecore; Поскольку мой экземпляр Sitecore разворачивается на двух серверах с двумя сайтами Sitecore, каждый из которых указывает на разные веб-базы данных, но те же основные, основные и аналитические базы данных, я не мог бы это сделать, используя Sitecore Domain manager. Поэтому я думал о том, чтобы делать это вручную, редактируя App_Config \ Security \ domains.config на сервере. Ниже был domains.config, который у меня был.Sitecore.Context.User.IsAuthenticated возвращает true для экстрасети Анонимный пользователь

<?xml version="1.0" encoding="utf-8"?> 
<domains xmlns:sc="Sitecore"> 
<domain name="sitecore" ensureAnonymousUser="false" /> 
<domain name="extranet" defaultProfileItemId="{AE4C4969-5B7E-4B4E-9042-B2D8701CE214}" /> 
<domain name="default" isDefault="true" /> 
<sc:templates> 
    <domain type="Sitecore.Security.Domains.Domain, Sitecore.Kernel"> 
     <ensureAnonymousUser>true</ensureAnonymousUser> 
     <locallyManaged>false</locallyManaged> 
    </domain> 
</sc:templates> 
<domain name="Station" defaultProfileItemId="{F181ED3D-F342-46E6-B6F6-2A6A6173B513}" /> 
<domain name="Emailcampaign" /> 
</domains> 

Я добавил еще один домен (MyDomain) в конце, как показано ниже.

<?xml version="1.0" encoding="utf-8"?> 
<domains xmlns:sc="Sitecore"> 
<domain name="sitecore" ensureAnonymousUser="false" /> 
<domain name="extranet" defaultProfileItemId="{AE4C4969-5B7E-4B4E-9042-B2D8701CE214}" /> 
<domain name="default" isDefault="true" /> 
<sc:templates> 
    <domain type="Sitecore.Security.Domains.Domain, Sitecore.Kernel"> 
     <ensureAnonymousUser>true</ensureAnonymousUser> 
     <locallyManaged>false</locallyManaged> 
    </domain> 
</sc:templates> 
<domain name="Station" defaultProfileItemId="{F181ED3D-F342-46E6-B6F6-2A6A6173B513}" /> 
<domain name="Emailcampaign" /> 
<domain name="MyDomain" /> 
</domains> 

Как только я сделал это, Sitecore.Context.User.IsAuthenticated начали возвращать верно для экстранет \ пользователя Anonymous (не зарегистрированный пользователь) в коде.

Неужели кто-нибудь сталкивался с этой проблемой раньше? Пожалуйста, дайте мне знать, где я ошибаюсь.

+1

Вы вставили правильный код для второй конфигурации? Я не вижу никаких различий. – Anton

+0

@ Антон Извините. Кто-то отредактировал сообщение и внес некоторые изменения в него. Взгляните на это сейчас. –

ответ

0

Мы, наконец, решили эту проблему! Это было вызвано исправлением, которое мы добавили, чтобы решить проблему, с которой мы столкнулись с Sitecore ECM. Проблема заключалась в том, что Sitecore раньше выходил из системы, как только мы нажимали на предварительный просмотр сообщения. Таким образом, мы выполнили шаги, приведенные в нижнем потоке, чтобы исправить проблему.

https://stackoverflow.com/a/30836600/4165670

Но мы не тестировали для анонимных пользователей, как это делается в потоке. Мы никогда не помещали этот код в сайт доставки контента, а когда мы создали новый домен, этот код попал на сайт доставки контента с каким-то другим кодом.

Поскольку мы устанавливаем текущего пользователя в качестве активного пользователя в коде, он начал показывать, что пользователь extranet \ Anonymous в качестве текущего пользователя.

2

Я также столкнулся с этой проблемой, когда работал с Sitecore 6.6, я не уверен, что это проблема в более поздних версиях. По сути, если вы изменили свой domains.config с параметром ensureAnonymousUser, установленным в качестве истинного анонимного пользователя для этого домена, в этом случае Extranet был создан в базе данных - возможно, это было не так, пока вы не изменили этот параметр.

В Sitecore все не зарегистрированные пользователи просматривают сайт как пользователь *domain*/anonymous. Поскольку членство Sitecore основано на .NET Membership, он определяет, что Пользователь вошел в систему как использующий эту учетную запись.

Поэтому я рекомендую заполнить дополнительную проверку у вашего Sitecore.Context.User.IsAuthenticated, чтобы проверить, является ли имя пользователя учетной записи пользователя *domain of site*/anonymous, Sitecore.Context.User.Name, если оно возвращает false.

EDIT

Я подтвердил Sitecore.Context.User.IsAuthenticated возвращает истину для *domain*\Anonymous пользователь был зафиксирован в Sitecore 8. Таким образом, вы можете использовать его, чтобы определить, если пользователь вошел в систему, а не с помощью *domain*\anonymous счета.

+0

В моем случае экстранет \ Анонимный пользователь уже присутствовал до того, как я внес изменения в domains.config, а для пользователей без регистрации я получил имя пользователя как extranet \ Anonymous и Sitecore.Context.User.IsAuthenticated как false.Но как только я добавил домен, для пользователей без регистрации я начал получать имя пользователя как extranet \ Anonymous и Sitecore.Context.User.IsAuthenticated как true. Интересно, если я удалю новый домен, удалив домен ta, сохраняя файл, который все еще выдавал ту же проблему, но только после того, как я заменил файл domains.config старым файлом. Он начал работать. –

+0

Любопытный - в каком домене вы проверяете имя пользователя и IsAuthenticated? Если вы находитесь в своем новом домене MyDomain, вы должны видеть пользователей, не являющихся loggedin, как MyDomain \ anonymous не extranet \ anonymous –

+0

Я буду в extranet \ Анонимный домен –

Смежные вопросы