我尝试将MvcSiteMapProvider
配置到我的项目中,MvcSiteMapProvider_SecurityTrimmingEnabled
参数似乎无法正常工作。我项目的关键词是:
MvcSiteMapProvider_SecurityTrimmingEnabled
设置为true
当我运行项目时,即使用户未经过身份验证或未获得操作授权,也会显示每个菜单。
我怎样才能让它发挥作用?
答案 0 :(得分:2)
根据documentation,使用外部DI容器时,DI配置必须提供所有配置。这主要是因为当使用外部DI时,许多设置的多样性可能会根据其配置方式而改变。
因此,换句话说,使用外部DI时,web.config / appSettings中的MvcSiteMapProvider_SecurityTrimmingEnabled
将无效。
要提供此设置,您需要使用/DI/Unity/ContainerExtensions/MvcSiteMapProviderContainerExtension.cs
文件(模块)。在文件顶部附近,有一个名为securityTrimmingEnabled的变量需要设置为true才能启用安全修整。
bool securityTrimmingEnabled = true;
您可以根据需要更改此文件,以注入您自己的任何接口实现,或禁用许多对您的应用程序没有意义的内置功能。</ p>