Umbraco.Library.IsLoggedOn () не работает из XSLT - PullRequest
1 голос
/ 29 июля 2010

Это простой 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>

Для разработчиков, не входящих в Umbraco: функция library.IsLoggedOn () проверяет HttpContext.Current.User и HttpContext.Current.User.Identity.IsAuthenticated, чтобы определить, вошли вы в систему или нет.

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

Ответы [ 2 ]

2 голосов
/ 30 июля 2010

Изменить

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

на

<xsl:when test="umbraco.library:IsLoggedOn()"> 
0 голосов
/ 02 августа 2010

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

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

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

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

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

...