gpt4 book ai didi

c# - 启用身份验证和授权的单元测试WCF服务类

转载 作者:行者123 更新时间:2023-12-03 22:01:17 25 4
gpt4 key购买 nike

我有一个WCF服务,其中已启用用户名身份验证和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 });
}
}


我的Nunit测试方法:

    [Test]
public void CallProcessEmployee_Should_Work()
{
var service=new CustomerService();
var request = new CustomerRequest();
service.UploadEmployees(request);
}


当我尝试执行单元测试时,出现以下错误:

System.Security.SecurityException : Request for principal permission failed.


如何对启用了身份验证和授权的类进行单元测试?

最佳答案

我通过创建“设置”方法并将主体设置为当前线程来解决此问题,如下所示:

    [SetUp]
public void SetupUnitTestPrinciple()
{
var identity = new GenericIdentity("Unitest");
System.Threading.Thread.CurrentPrincipal = new CustomPrincipal(identity);
}

关于c# - 启用身份验证和授权的单元测试WCF服务类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26099156/

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