我们如何在.NET中进行模拟?
时间:2020-03-06 14:38:30 来源:igfitidea点击:
是否有一种简单的开箱即用的方法来模拟.NET中的用户?
到目前为止,我一直在代码项目中使用此类来满足我的所有模拟要求。
使用.NET Framework是否有更好的方法呢?
我有一个用户凭据集(用户名,密码,域名),它代表我需要模拟的身份。
解决方案
这是.NET模拟概念的一些很好的概述。
- Michiel van Otegem:WindowsImpersonationContext变得容易
- WindowsIdentity.Impersonate方法(签出代码示例)
基本上,我们将利用.NET框架中现成的这些类:
- WindowsImpersonationContext
- WindowsIdentity
该代码通常会很冗长,这就是为什么我们会看到许多示例(例如我们引用的示例)试图简化该过程的原因。
这可能是我们想要的:
using System.Security.Principal; using(WindowsIdentity.GetCurrent().Impersonate()) { //your code goes here }
但我确实需要更多详细信息来。我们可以使用配置文件(如果要在网站上进行此操作)进行模拟,或者如果它是WCF服务,则可以通过方法装饰器(属性)进行模拟,或者通过...我们可以理解。
另外,如果我们要假冒模拟称为特定服务(或者Web应用程序)的客户端,则需要正确配置客户端,以使其传递适当的令牌。
最后,如果我们真正想要做的是委派,则还需要正确设置AD,以便信任用户和计算机进行委派。
编辑:
在这里看看如何模拟其他用户,并获得进一步的文档。