gpt4 book ai didi

c# - 代码忽略了 PrincipalPermission 属性?

转载 作者:行者123 更新时间:2023-11-30 12:17:10 24 4
gpt4 key购买 nike

我对所有具有 PrincipalPermission 属性的业务对象都有一个 Delete 方法。

例子:

[PrincipalPermission(SecurityAction.Demand, Role = "Vendor Manager")]
public static bool Delete(Vendor myVendor)
{

//do work here
}

问题是它似乎完全忽略了我的 PrincipalPermission。它可以让任何人通过,无论他们担任什么角色。

还有什么我忘了做的吗?我在应用程序启动部分的应用程序的 global.asax 中添加了以下内容:

AppDomain.CurrentDomain.SetPrincipalPolicy(System.Security.Principal.PrincipalPolicy.WindowsPrincipal);

但这也没有任何区别。

我还尝试了以下方法:

public static bool Delete(Vendor myVendor)
{
PrincipalPermission iPerm = new PrincipalPermission(null, "Vendor Manager");
iPerm.Demand();

//do work here
}

你不知道吗,这工作得很好!......关于为什么它以一种方式工作而不是另一种方式的任何想法?

最佳答案

你得到答案了吗?我刚刚在自己的应用程序中对此进行了测试,并且效果很好。我特别不添加

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);

而且,我正在使用表单例份验证(ASP.NET 成员资格)、MVC 2、.NET 3.5。

但是我确实发现如果我用下面的方法装饰我的类,装饰不起作用。

[PrincipalPermission(SecurityAction.Demand, Authenticated = true)]

关于c# - 代码忽略了 PrincipalPermission 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4128186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com