当前位置: 首页 > 编程语言 > C#

代码忽略PrincipalPermission属性?分享

时间:2023-04-10 14:28:59 C#

代码忽略PrincipalPermission属性?我对所有具有PrincipalPermission属性的业务对象都有一个Delete方法。示例:[PrincipalPermission(SecurityAction.Demand,Role="VendorManager")]publicstaticboolDelete(VendormyVendor){//doworkhere}问题是它似乎完全忽略了我的PrincipalPermission。它可以让任何人度过难关,无论他们扮演什么角色。还有什么我忘了做的吗?我在应用程序启动部分的应用程序的global.asax中添加了以下内容:AppDomain.CurrentDomain.SetPrincipalPolicy(System.Security.Principal.PrincipalPolicy.WindowsPrincipal);但这也没有任何区别。我还尝试了以下操作:publicstaticboolDelete(VendormyVendor){PrincipalPermissioniPerm=newPrincipalPermission(null,"VendorManager");iPerm.Demand();//在这里工作}不知道,这个很好用!....关于为什么它以一种方式而不是另一种方式工作的任何想法?你有答案吗?我刚刚在自己的应用程序中对此进行了测试,效果很好。我故意不添加AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);此外,我正在使用表单身份验证(ASP.NET成员身份)、MVC2、.NET3.5。但是,我确实发现,如果我用下面的方法装饰我的类,装饰不起作用。[PrincipalPermission(SecurityAction.Demand,Authenticated=true)]对于任何人来说,只有一个观察结果表明此示例不起作用。根据您当地的文化检查角色的名字。例如,如果您住在墨西哥,则必须使用:@"BUILTINAdministradores"而不是@"BUILTINAdministrators"。您是否已确认Windows主体没有您需要的权限?像这样的东西(从这里修改)应该-我认为-模仿这种行为并允许你一步一步地做。它应该表明是否授予许可。如果通过,那么我希望该属性也通过。如果它失败了,但是属性通过了,那么我和你一样不高兴。以上就是C#学习教程:代码忽略了PrincipalPermission属性?如果分享的内容对你有用,需要进一步了解C#学习教程,希望你多多关注~;PrincipalPermissionprincipalPerm=newPrincipalPermission(null,"VendorManager");尝试{principalPerm.Demand();Console.WriteLine("请求成功。");}catch(ExceptionsecEx){Console.WriteLine("请求失败。");.ReadLine();}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

猜你喜欢