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
}
そして、あなたは知らないでしょう、これはうまく機能します!....なぜそれが一方の方法で機能するが、もう一方の方法では機能しないのかについてのアイデアはありますか?