Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何模拟Nservicebus_Nservicebus - Fatal编程技术网

如何模拟Nservicebus

如何模拟Nservicebus,nservicebus,Nservicebus,嗨,如何模拟Nservicebus。我使用的是Nservicebus 5.2版本 我看到一些旧版本的代码,但新版本中没有。 我们是否有一些示例来演示5.2版本中的模拟 Configure.With() .StructureMapBuilder() .Sagas() .RunTimeoutManager() .UnicastBus() .ImpersonateSender(false) 在新版本中,无法设置

嗨,如何模拟Nservicebus。我使用的是Nservicebus 5.2版本

我看到一些旧版本的代码,但新版本中没有。 我们是否有一些示例来演示5.2版本中的模拟

 Configure.With()
        .StructureMapBuilder()
        .Sagas()
        .RunTimeoutManager()
        .UnicastBus()
           .ImpersonateSender(false)
在新版本中,无法设置

扮演者

有人知道如何将确切的currentprincipal对象传递到端点吗

我试图从命令行下面开始我的端点。
Start NServiceBus.Host.exe/displayName:“myservice”/username:“mydomain\myname”/password:“mypwd”

然而,当我记录用户名时,它并没有选择我用来启动端点的相同用户名

  public void Customize(BusConfiguration configuration)
        {


            configuration.UsePersistence<RavenDBPersistence>()

            Console.WriteLine("-------------------NAME--------------\n");
            Console.WriteLine(WindowsIdentity.GetCurrent().Name);
            Console.WriteLine("-------------------NAME--------------\n");


            Console.WriteLine("-------------------NAME--------------\n");
            Console.WriteLine(Thread.CurrentPrincipal.Identity.Name);
            Console.WriteLine("-------------------NAME--------------\n");
        }
public void自定义(总线配置)
{
configuration.UsePersistence()
Console.WriteLine(“-------------------名称-----------------\n”);
Console.WriteLine(WindowsIdentity.GetCurrent().Name);
Console.WriteLine(“-------------------名称-----------------\n”);
Console.WriteLine(“-------------------名称-----------------\n”);
Console.WriteLine(Thread.CurrentPrincipal.Identity.Name);
Console.WriteLine(“-------------------名称-----------------\n”);
}
输出如下所示: -------------------名字--------------

MYNetworkDomain\MyMachineLoggedInNTId -------------------名字--------------

-------------------名字--------------


-------------------名称-----------------

在.Net中模拟可能有多种风格,并且可能不会像您预期的那样最终表现出来。 在v4中,当
.ImpersonateSender(…)
设置为true时,行为是使用消息头(发送方端点使用的标识名)随消息一起传递,接收方将使用传入消息头设置新的
通用标识

这不是一个真正的模拟,更不用说在不同的机器上工作的模拟需要设置委派,委派会带来所有的安全问题。更不用说,AFAIK、Windows身份模拟不能在线程级别完成,安全令牌附加到进程,不能被假装为不同用户的线程覆盖


也就是说,没有任何东西可以阻止您构建自己的逻辑来传递身份和消息,以便按照您的喜好设置.Net身份/主体基础结构,并能够通过
角色
基础结构执行安全检查。

在.Net中模拟可以有多种风格,并且最终可能不会像您预期的那样运行。 在v4中,当
.ImpersonateSender(…)
设置为true时,行为是使用消息头(发送方端点使用的标识名)随消息一起传递,接收方将使用传入消息头设置新的
通用标识

这不是一个真正的模拟,更不用说在不同的机器上工作的模拟需要设置委派,委派会带来所有的安全问题。更不用说,AFAIK、Windows身份模拟不能在线程级别完成,安全令牌附加到进程,不能被假装为不同用户的线程覆盖


也就是说,没有什么可以阻止您构建自己的逻辑来传递身份和消息,以便按照您的喜好设置.Net identity/principal infrastructure,并能够通过
角色
infrastructure执行安全检查。

我想用windows模拟运行一个调用。我可以在所有传出消息的标题中设置声明、windows凭据等内容。然后可以从传入的消息中获取它和,并设置Thread.CurrentPrincipal如何在特定的windowsIdentity上执行存储的消息。有没有办法从传入消息头重新创建windowsidentity.currentprincipal?我的场景:当我第一次在启用windowsauthentication的情况下运行Saga时,它会询问我的凭据,我放置了一些不同的凭据(不同的域\用户),这些凭据不是我的windows NT id。然后,当我执行identity.impersonate时,Saga会在同一凭据上发送命令端点执行。然而,在Saga崩溃的情况下,我重新运行该项目时,所有消息都会发送到端点,该端点使用我的windowsNTId运行,但失败。我尝试使用下面的命令行运行该端点,但在调试代码时,该端点仍使用我的机器NT id凭据
Start NServiceBus.Host.exe/displayName:“MyEndpoint”/username:“MYDomain\MyUserName”/password:“MyPassword”
一次更新:当我右键单击Host.exe并在其他用户传递所需凭据时运行它时,它进入CurrentPrincipal。我想用windows模拟运行一个调用。我可以在所有传出消息的标题中设置声明、windows凭据等内容。然后可以从传入的消息中获取它和,并设置Thread.CurrentPrincipal如何在特定的windowsIdentity上执行存储的消息。有没有办法从传入消息头重新创建windowsidentity.currentprincipal?我的场景:当我第一次在启用windowsauthentication的情况下运行Saga时,它会询问我的凭据,我放置了一些不同的凭据(不同的域\用户),这些凭据不是我的windows NT id。然后,当我执行identity.impersonate时,Saga会在同一凭据上发送命令端点执行。然而,在Saga崩溃的情况下,我重新运行该项目时,所有消息都会发送到端点,该端点使用我的windowsNTId运行,但失败。我尝试使用下面的命令行运行该端点,但在调试代码时,该端点仍使用我的机器NT id凭据
Start NServiceBus.Host.exe/displayName:“MyEndpoint”/username:“MYDomain\MyUserName”/password:“MyPassword”
一次更新:当我右键单击时