Работает ли обрезка безопасности с маршрутизацией веб-форм? - PullRequest
0 голосов
/ 31 мая 2010

В моем web.config я настроил SiteMapProvider с securityTrimmingEnabled="true", а на главной странице есть элемент управления asp:Menu, связанный с asp:SiteMapDataSource.Кроме того, я настроил ограниченный доступ ко всем страницам в подпапке «Admin» (используя другой web.config в этой подпапке).

Если я поместил sitemapNode в Web.sitemap ...

<siteMapNode url="~/Admin/Default.aspx" title="Administration" description="" >

... только пользователи с ролью «Администратор» будут иметь пункт меню, связанный с этим siteMapNode.Так что это работает нормально и по назначению.

Теперь я определил маршрут URL в Global.asax для сопоставления физического файла с новым URL:

System.Web.Routing.RouteTable.Routes.MapPageRoute("AdminHomeRoute", 
    "Administration/Home", "~/Admin/Default.aspx");

Но когда я использую этоURL-адрес маршрута в файле SiteMap ...

<siteMapNode url="Administration/Home" title="Administration" description="" >

... кажется, что обрезка безопасности не работает: пункт меню виден всем пользователям.(Однако доступ к странице все еще ограничен, поэтому выбор пункта меню пользователями, не являющимися администраторами, не приводит к переходу на страницу с ограниченным доступом.)

Вопрос: есть ли какие-либо настройки, которые я пропустил до сих пор для обеспечения безопасности?обрезка работы с URL-маршрутизацией в ASP.NET 4.0 веб-форм?Я сделал что-то неправильно?Есть ли обходной путь?

Спасибо за помощь!

1 Ответ

1 голос
/ 02 июня 2010

Я ответил на это на форумах ASP.NET (http://forums.asp.net/t/1563781.aspx),, но ответа нет. Однако вы можете настроить поставщика; см. Код в сообщении на форуме.

...