Umbraco. Библиотека. IsLoggedOn () не работает от XSLT

Это - простой xslt, который показывает состояние входа в систему текущего пользователя. Все хорошо работало на сервере разработки, но после того как у нас есть приложение установки на производстве, umbraco.librarty. IsLoggedOn () начинал всегда возвращать false.

Приложение использует метод umbraco.libraty. IsLoggedOn () из кода.NET и оттуда это возвращает собственное значение, но от xslt не делает.

 <xsl:choose>
  <xsl:when test="umbraco.library:IsLoggedOn() = true()">
   You are logged in as 
    <q>
      <xsl:variable name="user" select="umbraco.library:GetCurrentMember()/@loginName"/>
      <xsl:value-of select="$user"/>
    </q>.  This is <a href="/profile">your profile</a>.
  </xsl:when>
  <xsl:otherwise>
   You are not logged in.
    <a href="/registruj-se">Log in</a>.
  </xsl:otherwise>
</xsl:choose>

Для non-umbraco разработчиков: библиотека. IsLoggedOn () функция проверяет HttpContext. Текущий. Пользователь и HttpContext. Текущий. Пользователь. Идентификационные данные. IsAuthenticated, чтобы видеть, зарегистрированы ли Вы или нет.

Возможно, это - проблема с cookie и XSLT? У кого-либо есть подсказка? Tnx

1
задан Misha N. 29 July 2010 в 11:12
поделиться

2 ответа

Хорошо, это решение моей проблемы.

Сеанс не был доступен ни из xslt, ни из элемента управления ascx, который пытался получить доступ к сеансу из внутреннего кода. Наше приложение на 99% использует веб-сервис asp.net с методами, отмеченными [WebMethod (EnableSession = true)]. Внутри этих методов был доступен сеанс. Это заставило меня подумать, что сеанс фактически отключен на веб-сайте по умолчанию.

После некоторого поиска в Google я обнаружил, что мне нужно добавить это свойство в файл web.config:

<system.webServer>
<modules runAllManagedModulesForAllRequests="true">

По-видимому, в файле machine.config в нашей разработке это свойство было по умолчанию, а на рабочем сервере - нет, поэтому он нужно было изменить в web.config.

0
ответ дан 2 September 2019 в 22:37
поделиться

Change

<xsl:when test="umbraco.library:IsLoggedOn() = true()"> 

to

<xsl:when test="umbraco.library:IsLoggedOn()"> 
2
ответ дан 2 September 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: