我有一个自定义角色提供程序与标准的asp网站地图和菜单控件一起工作,启用了安全性启用,菜单项成功消失/重新出现,因为我修改web.config如下:SecurityTrimming,自定义角色提供者和服务器500错误:(
<location path="x/y/z.aspx">
<system.web>
<authorization>
<allow roles="a, b, c" />
<deny users="*" />
</authorization>
</system.web>
</location>
但不幸的是,每当我访问这样一个页面,我表现的十分基本的“500 - 内部服务器错误”
如果我删除从配置上面的纹路,不会发生这样的错误(但每个人都可以访问该页面!)
这可以做我的自定义角色提供者吗?它似乎与其他一切工作!我只重写了IsUserInRole和GetRolesForUser函数(所有其他必需的函数,我什么都不返回或空数组等)。
谢谢! :)
编辑:
我敢肯定这是不是我的自定义roleprovider导致错误..我有在我的web.config别处以下。
<location path="." inheritInChildApplications="false">
我的配置的大部分是在本节中举行的想法是,我所有的appSettings,的sessionState,身份验证选项等将不会继承到其他应用程序,在IIS中设置但被子文件夹中举行我现在正在开发的应用程序。也许这个'位置'内部有些部分没有被转移到其他“位置”(尽管它们不是儿童应用程序..!),令人困惑的是securityTrimming确实有效......无论如何,移动内容在该部分之外的上述“位置”,一切都再次起作用!有两种世界的最好方法吗?
我编辑了更多的信息..我相信它不再是一个特别的角色提供者/修剪问题..不知道是否要完全重新编辑,发布一个新问题,或保持现状。感谢所有的帮助。 –