Я унаследовал сайт, который широко использует файлы Sitemap. Меня спросили, могу ли я создавать пункты меню, только если пользователь вошел в систему с правильной ролью.Элементы SiteMap Not Hiding
(я знаю, что моя роль на основе Войти все работает правильно)
У меня есть следующие в моей карте сайта
<siteMapNode url="~/" title="Home" description="Home">
<siteMapNode title="Home" url="default.aspx" />
<!--Sets up Product page-->
... Product map always shows, so skipped ...
<siteMapNode title="Support" url="~/support/default.aspx">
<siteMapNode title="CurrentIssues" url="~/support/Issues.aspx" role="Customer" />
</siteMapNode>
...
и эта линия в моей конфигурации
<add name="main_siteMap" description="Menu Site map Provider" type="System.Web.XmlSiteMapProvider" siteMapFile="Web.sitemap" secuirityTrimmingEnabled="true"/>
Но независимо от того, независимо от того, вошел ли я в систему или отсутствовал, всегда отображается пункт меню CurrentIssues. (Хотя, если вы попытаетесь щелкнуть по нему, это приведет вас к LoginPage.)
Так что же я пропустил, чтобы иметь возможность скрывать пункты меню для тех, которые не вошли в правильную роль?
Ok, я установил опечаток в код, я, похоже, не могу редактировать выше). Он по-прежнему не хочет скрывать параметры меню, но .. – Matt
Используете ли вы пользовательский поставщик роли? – MikeSmithDev
Нет, все это из коробки. Тем не менее, есть несколько файлов Sitemap, если это имеет опору. Я установил все провайдеры в файле конфигурации для использования обрезки secuirty и установил, если необходимо, соответствующие пункты меню. Еще нет радости. Испугавшись, нужно ли мне это делать в коде, а не в конфигурации: -/ – Matt