Вернуть разные siteMapNode для разных ролей - PullRequest
0 голосов
/ 22 мая 2010

Я использую свой собственный SiteMapProvider, который просто унаследован и немного переписан System.Web.XmlSiteMapProvider.

Я хочу вернуть разные siteMapNode для клиентов и для менеджеров. Или, может быть, то же самое, но с другим свойством Title.

Возможно ли это? Если да, как я могу это сделать?

1 Ответ

1 голос
/ 22 мая 2010

Вот статья из блога Скотта Гу, которая может вам помочь. В примере в статье используется проверка подлинности Windows, но она также должна работать и для проверки подлинности с помощью форм.

http://weblogs.asp.net/scottgu/pages/Recipe_3A00_-Implementing-Role_2D00_Based-Security-with-ASP.NET-2.0-using-Windows-Authentication-and-SQL-Server.aspx

Если вы хотите реализовать разные названия для разных ролей, то вот пример того, как это можно сделать. Все, что вам нужно сделать, это создать два узла, указывающие на один и тот же URL. Причины того, что a = 1 и a = 2 в качестве переменных строки запроса в URL-адресе, должны гарантировать уникальность URL-адреса. Если URL-адрес не является уникальным, asp.net будет жаловаться, если вы не можете переопределить эту функцию ...

    <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
        <siteMapNode url="default.aspx" title="Home">
            <siteMapNode url="page1.aspx?a=1" title="Client Title" roles="Client" />
            <siteMapNode url="page1.aspx?a=2" title="Manager Title" roles="Manager" />
        </siteMapNode> 
    </siteMap>
...