看起来使用Express v3实现基本的HTTP身份验证是微不足道的:
app.use(express.basicAuth('username', 'password'));
Run Code Online (Sandbox Code Playgroud)
版本4(我使用4.2)删除了basicAuth中间件,所以我有点卡住了.我有以下代码,但它不会导致浏览器提示用户提供凭据,这是我想要的(以及我想象的旧方法):
app.use(function(req, res, next) {
var user = auth(req);
if (user === undefined || user['name'] !== 'username' || user['pass'] !== 'password') {
res.writeHead(401, 'Access invalid for user', {'Content-Type' : 'text/plain'});
res.end('Invalid credentials');
} else {
next();
}
});
Run Code Online (Sandbox Code Playgroud) 如果你有这样的协议:
protocol Messaging {
func sendMessage(message: String)
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在类这样的类中满足它:
class Messager: Messaging {
func sendMessage(message: String, count: Int = 1) {}
}
Run Code Online (Sandbox Code Playgroud)
这将是很好的,因为通过添加默认参数来满足协议的结果签名.有没有办法让它与Swift 2一起使用?
这是一个简化的例子.让我们说,为了论证,协议是固定的.解决方案只能更新Messager类.我的目标是能够sendMessage()像这样打电话:
let m: Messaging = Messager()
m.sendMessage("")
Run Code Online (Sandbox Code Playgroud)
我发现完成这个(并满足编译器)的唯一方法是重载,如下所示:
class Messager: Messaging {
func sendMessage(message: String) {
self.sendMessage(message, count: 1)
}
func sendMessage(message: String, count: Int = 1) {}
}
Run Code Online (Sandbox Code Playgroud)
这种方法的问题是我的默认值然后在两个地方指定,我失去了Swift默认参数的主要优点.
Xcode 4中的以下操作有何作用?
我不确定何时使用这些(或者根本不使用它们中的任何一个).
我想在about框中显示我的Silverlight 3应用程序的版本号,但是当我使用传统的.Net调用时:
Assembly.GetExecutingAssembly().GetName().Version;
Run Code Online (Sandbox Code Playgroud)
我在GetName()调用上得到一个MethodAccessException.我怎么能得到我的装配版本号?
我正在尝试使用Core Image过滤器在Mac应用程序中为图像添加一些颜色校正.首先,我正在考虑允许自定义白平衡,从图像中删除一个演员.它看起来就像CIWhitePointAdjust我正在寻找的那样,但在尝试之后,我不确定我是否使用它错了,或者它是否做不到我想的.
从这张图片开始,随着年龄变黄,右边缘有一条白色的细条:

我应用过滤器,如下所示:
NSColor *whiteSample = // Chosen from the speech bubble's background
CIColor *whiteInputColor = [[CIColor alloc] initWithColor:whiteSample];
layer.filters = @[
[CIFilter filterWithName:@"CIWhitePointAdjust"
withInputParameters:@{kCIInputColorKey: whiteInputColor}]
];
Run Code Online (Sandbox Code Playgroud)
并获得此图像:

请注意,它看起来比原始颜色更暗更黄(与我想要的效果相反).我一直期待一种效果更像是在Photoshop中使用自动颜色,如下所示:

我使用CIWhitePointAdjust不正确,还是这项工作的错误工具?如果另一个过滤器或过滤器组合可以更好地工作,我很想知道.
由于我正在操作已经存在于CALayer对象中的图像,因此Core Image过滤器看起来确实是正确的选择,但如果这只能通过其他方式实现,我对此持开放态度.
更新
信号处理站点上一个有用的答案给出了我正在尝试实现的名称.从广义上讲,它被称为直方图均衡.我试图弄清楚是否有办法使用Core Image过滤器执行该过程,到目前为止,它看起来并不太有希望(没有我自己编写).
我svn:external在我的存储库中创建了一个.一切正常,除了svn status命令的输出.在输出中有很多我不需要的信息:
$ svn st
X lib
Performing status on external item at 'lib'
Run Code Online (Sandbox Code Playgroud)
我可以运行svn st --ignore-externals -q,我可以将这一行放在一个小脚本中,但也许有更好的解决方案.如何在不查看外部信息的情况下查看工作副本的状态?
我正在沙盒化我的应用程序,并尝试允许导入/导出多个文件,使用XML文件来引用它们.为了允许我的应用程序(或其他沙盒应用程序)访问XML中列出的文件,我还包括一个序列化的安全范围书签.我正在按照本答案中的描述对其进行序列化,我的单元测试(不是沙箱)会毫无问题地写入和读取XML数据.当我的应用程序解析书签时,NSURL返回的内容为nil,NSError引用也是如此.既然我不相信应该是这样的话,为什么会这样呢?我可以通过提示用户选择带有a的文件/目录来解决它NSOpenPanel,但我仍然希望让书签按原样运行.
在测试项目中转载
要在家中重现,请在Xcode中创建一个新的Cocoa应用程序,并对项目中的文件使用以下Gist:https://gist.github.com/2582589(使用正确的下一个视图循环更新)
然后,按照Apple的说明对项目进行代码签名.您通过依次单击按钮重现问题(我以rdar:// 11369377提交给Apple ).您选择磁盘上的任何文件(在应用程序的容器外),然后选择要导出的XML,然后导入相同的XML.
希望你们能够帮助我弄清楚我做错了什么.要么我做错了什么,框架错误地保持自己,或者我做得对,它完全被打破了.我尽量不责怪框架,所以它是什么?还是有其他可能吗?
示例代码
将XML导出到docURL:
// After the user picks an XML (docURL) destination with NSSavePanel
[targetURL startAccessingSecurityScopedResource];
NSData *bookmark = [targetURL bookmarkDataWithOptions:NSURLBookmarkCreationWithSecurityScope
includingResourceValuesForKeys:nil
relativeToURL:docURL
error:&error];
[targetURL stopAccessingSecurityScopedResource];
Run Code Online (Sandbox Code Playgroud)
从docURL以下位置导入XML :
// After the user selected the XML (docURL) from an NSOpenPanel
NSURL *result = [NSURL URLByResolvingBookmarkData:bookmarkData
options:NSURLBookmarkResolutionWithSecurityScope
relativeToURL:docURL
bookmarkDataIsStale:nil
error:&error]; …Run Code Online (Sandbox Code Playgroud) 有没有办法判断控件(特别是System.Windows.Controls.TextBox)是否集中在Silverlight中?我正在寻找类似以下内容(您将在常规.Net应用程序中看到的内容):
textBox.Focused
Run Code Online (Sandbox Code Playgroud)
这看起来像是从控件中遗漏出来的简单而微不足道的东西,但我无法在任何地方找到答案.
更新
结合Rob的答案,稍微优雅的解决方案是创建一个类似的扩展方法:
public static bool IsFocused( this Control control )
{
return FocusManager.GetFocusedElement() == control;
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Visual Studio 2015进行C#项目,使用NuGet进行包管理.对于一个参考,我想在迭代修复时暂时使用本地构建,而不是发布的版本.实现这一目标的最佳方法是什么?
如果我使用外部SVN,我会将新的本地构建的副本放入外部引用的文件夹中,然后进行设置.其他包管理软件(如CocoaPods)将允许我指向本地目录来解析引用.使用NuGet,看起来没有任何机制.
当我尝试将新的DLL放在packages文件夹中的包引用上时,我在Visual Studio中得到了不一致的行为.我的构建将失败,有数百个错误,其中大多数错误很快就会从错误列表中消失.我最后留下了一个警告,告诉我它无法解析我正在尝试替换的程序集的引用(虽然引用的属性确实表明它正在找到我的新版本).