Ala*_*ani 2 c# wcf nunit unit-testing wcf-security
我有一个WCF服务,它启用了UserName身份验证和PrincipalPermission授权.
我该如何对该方法进行单元测试.
服务:
[PrincipalPermission(SecurityAction.Demand, Role = "Admin")]
public void UploadEmployees(CustomerRequest request)
{
try
{
ProcessEmployees(request.PacketId, request.Employees);
}
catch (Exception ex)
{
throw new FaultException<CustomerException>(new CustomerException { Status = -1, ErrorMessage = ex.Message });
}
}
Run Code Online (Sandbox Code Playgroud)
我的Nunit测试方法:
[Test]
public void CallProcessEmployee_Should_Work()
{
var service=new CustomerService();
var request = new CustomerRequest();
service.UploadEmployees(request);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试执行单元测试时,我收到的错误是:
System.Security.SecurityException : Request for principal permission failed.
Run Code Online (Sandbox Code Playgroud)
如何对启用了身份验证和授权的类进行单元测试.
我通过创建"setup"方法并将principal设置为当前线程来解决此问题,如下所示:
[SetUp]
public void SetupUnitTestPrinciple()
{
var identity = new GenericIdentity("Unitest");
System.Threading.Thread.CurrentPrincipal = new CustomPrincipal(identity);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1014 次 |
| 最近记录: |