【发布时间】:2009-07-09 20:03:31
【问题描述】:
如何对带有 PrincipalPermission 属性的代码进行单元测试?
例如,这是有效的:
class Program
{
static void Main(string[] args)
{
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
var c = new MyClass();
}
}
[PrincipalPermission(SecurityAction.Demand, Role = @"BUILTIN\Users")]
class MyClass
{
public MyClass()
{
Console.WriteLine("This works.");
}
}
这会引发 SecurityException:
[TestClass]
public class UnitTest1
{
[TestInitialize]
public void TestInitialize()
{
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
}
[TestMethod]
public void TestMethod1()
{
var c = new MyClass();
}
}
有什么想法吗?
【问题讨论】:
-
有趣...我用 TestDriven 运行了相同的测试,它通过了。在这种情况下,测试似乎以我的身份运行,但是当使用 mstest 运行测试时,CurrentPrincipal 具有“空白”身份。有谁知道为什么?
标签: c# .net security unit-testing mstest