【发布时间】:2011-08-01 16:07:18
【问题描述】:
我正在尝试编写一个属性以将安全性应用于方法。看起来像这样的东西:
[CustomAuthorization(SecurityAction.Demand)]
public void DoSomething()
{
//Do Something
}
所以我在另一个程序集上有我的属性:
public sealed class AuthorizationAttribute : CodeAccessSecurityAttribute
{
public override IPermission CreatePermission()
{
if (!/*authorize here*/)
{
return new CustomPermission(PermissionState.Unrestricted);
}
throw new Exception("IdentificationFailure.");
}
}
public AuthorizationAttribute(SecurityAction securityAction)
: base(securityAction) { }
}
到目前为止它有效。 我运行我的主程序,它完成了它的工作。
现在我去修改具有该属性的程序集,构建它。没问题。
我回到我的主程序尝试构建,但它失败了。它无法复制新构建的 dll,因为旧的 dll 仍在被进程使用。
有人知道这里会发生什么吗?
【问题讨论】:
-
您是否打开了 2 个 Visual Studio 窗口?
-
不。但是如果我关闭它并重新打开它就可以了。
-
但是如果我返回并再次修改程序集,它会失败。
标签: c# .net security attributes custom-attributes