我有可以从多种客户端类型调用的库代码,例如WinForms,Console,ASP.NET等......并且需要确定当前的主体.这样做我正在执行Thread.CurrentPrincipal和Environment.UserName的两步检查,如下所示:
var currentUser = !System.Threading.Thread.CurrentPrincipal.Identity.IsAuthenticated ? null : System.Threading.Thread.CurrentPrincipal.Identity.Name;
if (string.IsNullOrWhiteSpace(currentUser))
{
currentUser = Environment.UserName;
}
Run Code Online (Sandbox Code Playgroud)
在控制台应用程序中,Thread.CurrentPrincipal.Identity.IsAuthenticated在MSTest中始终为false howerver,它始终具有有效的经过身份验证的用户.
无论如何,在单元测试中将Thread.CurrentPrincipal的值重置为unauthenticated以模仿Console应用程序?
在某些情况下,当我尝试在C#项目的设置中选项卡"Debug"上设置"Start external programm"并按下F5时,我看到一个错误"调试器的协议与调试对象不兼容".在什么情况下会发生?
如果dll的代码在vs2008项目中且应用程序代码在vs2010项目中,我可以通过"启动外部程序"选项调试库运行应用程序吗?
在有人向我投票之前要求另一个中心问题.请在评判前阅读我的情况!
我熟悉最常用的中心技术,但这是我的情况.我有一个DIV,必须在其父级内垂直和水平居中,但它也必须是流体,不超过890px的宽度.
最大宽度实现了我想要的流体性,但因为绝对定位元素需要宽度而不是最大宽度我的垂直/水平定心中断.目前我不得不牺牲流体中心(或反之亦然),但我需要两者.
我希望始终将内容保存在我的中心DIV中,我当前的代码不会这样做,它会在窗口缩小时隐藏内容http://jsfiddle.net/cCQ2w/
任何人都可以提出一个可能适合我的解决方案吗?
我有一个可观察的流,以不一致的间隔产生值,如下所示:
------1---2------3----------------4--------------5---
Run Code Online (Sandbox Code Playgroud)
我想对此进行采样,但是一旦产生了一个值,就没有任何空样本:
------1---2------3----------------4--------------5-----
----_----1----2----3----3----3----4----4----4----5----5
Run Code Online (Sandbox Code Playgroud)
我显然认为Replay().RefCount()可以在这里使用提供最后一个已知的值,Sample()但因为它没有重新订阅源流它没有工作.
有关如何做到这一点的任何想法?
我正在开发F#Azure函数uinsg VS Code,我已经按照这样的方式编写了我的项目:
ProjectFolder
-> Function1
-> function.json
-> run.fsx
-> Function2
-> function.json
-> run.fsx
Run Code Online (Sandbox Code Playgroud)
鉴于F#不支持文件夹,这两个函数之间共享代码(特别是类型)的最佳方式是什么?