Навигация по SiteMathPath - PullRequest
       39

Навигация по SiteMathPath

0 голосов
/ 25 марта 2011

Мое приложение имеет несколько разных пользователей, в настоящее время для них настроены разные мастер-страницы.Идея заключается в том, чтобы использовать какой-то тип хлебных крошек в системе, т.е. home> details> ...

Каков наилучший подход для этого?Я думаю, что мне нужно будет определить отдельные пути, которые каждый пользователь может иметь (все страницы, которые он может просматривать) в Web.sitemap (будет иметь несколько SiteMapPaths), а затем добавить элемент управления картой сайта на главную страницу и связать его с соответствующим SiteMapPathэто звучит как правильный подход к этому?

У меня проблема с настройкой SiteMapPath на главной странице.Я использовал следующее руководство http://geekswithblogs.net/azamsharp/archive/2006/08/16/88197.aspx, чтобы попытаться использовать элемент управления, но элемент управления SiteMapPath не отображается на главной странице при входе в систему. Знаете ли вы, в чем может быть проблема?

Web.sitemap:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >

      <siteMapNode url="home.aspx" title=""  description="">
        <siteMapNode url="contacts.aspx" title=""  description="">   
    </siteMapNode>

</siteMap>

На главной странице:

<asp:SiteMapPath ID="SiteMapPath1" runat="server">

          <RootNodeTemplate>

          <asp:HyperLink ID="HyperLink1" runat="server"
          Text='<%# Eval("title") %>' NavigateUrl='<%# Eval("url") %>' />

          </RootNodeTemplate>

          <NodeTemplate>
            <asp:HyperLink ID="HyperLink2" runat="server"
            Text='<%# Eval("title") %>' NavigateUrl='<%# Eval("url") %>' />
          </NodeTemplate>

          </asp:SiteMapPath>

Спасибо

1 Ответ

0 голосов
/ 25 марта 2011

Если вы используете FormsAuthentication для управления авторизацией пользователей для страниц, по которым они могут перемещаться, то я бы предложил также включить роли.Затем используйте securityTrimmingEnabled = "ture" в sitemapprovider.Таким образом, вам не понадобятся отдельные файлы Sitemap для каждого пользователя.

Вот основы как это работает :

И вы можете поделиться некоторым кодом, чтобы мы моглизнаю, почему то, что вы пробовали, не работает.

Отредактировано: 1

Вам не нужен встроенный поставщик ролей для этого, но вам нужно добавитьроли для пользователя.Как это сделать - показано здесь Но вам нужно будет написать код, который возвращает роли в виде строки для каждого истинного значения, то есть «admin», если admin является истинным для пользователя в базе данных.Затем добавьте эти роли к пользователю Principal, как показано в ссылке, и он должен работать в сочетании с первой ссылкой.

Редактировать: 2 Вам не нужен этот сложный код для работы SiteMap,Вы просто перетащите его на свою страницу, и он будет работать на основе вашего файла .sitemap.Также у вас есть title = "" для sitemapnode, установите для него какое-то значение.

...