Это простой xslt, который показывает статус входа текущего пользователя. Все работало отлично на сервере разработки, но как только мы настроили приложение на производство, umbraco.librarty.IsLoggedOn() всегда начинал возвращать false.Umbraco.Library.IsLoggedOn() не работает с XSLT
Приложение использует метод 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, чтобы увидеть, если вы вошел в систему или нет.
Возможно, это проблема с cookies и XSLT? Кто-нибудь знает? Tnx
Hi riffnl, tnx для вас ответ. Первоначально это был только IsLoggedOn(), затем я поменял его на IsLoggedOn() = test() по рекомендации на форуме Umbraco. –
Можете ли вы добавить IsLoggedOn() для вывода следующим образом: , чтобы узнать, что такое значение на самом деле? –
riffnl
фактическое значение было «false». Однако это была проблема с конфигурацией, а не с xslt. См. Мой ответ ниже. tnx для справки –