我正在创建一个包含ASP.NET页面和Flash小程序的网站.我希望将我的业务逻辑封装在WCF服务中,该服务将通过两个端点公开:一个可通过HTTP(S)访问Internet,供Flash客户端使用,另一个可在数据中心内访问,供应用程序服务器使用.如果这似乎不是一个好方法,那么请阻止我; 否则,我会继续......
问题是如何验证来自Flash客户端的请求.由于我不想将用户的密码存储在浏览器cookie中,因此不希望每次请求都发送密码,并且不希望在初次登录后使用HTTPS,我打算使用令牌 - 基于认证系统.我也不希望用户在登录网站后必须登录Flash客户端,因此我计划在启动时使用Javascript将令牌传递给Flash客户端.
我知道WCF支持使用.NET Framework的内置安全框架(System.Security)来强制实施访问控制,我想利用这一点.
那么问题是: 如何在Flash调用令牌时将令牌传递给WCF服务,以及如何在服务器上处理令牌?
到目前为止,我很惊讶没找到答案.如果我遗漏了一些基本的东西,我将非常乐意知道这一点.
有一个大型遗留代码库已升级到Java 6(从1.4开始).代码中存在大量JUnit 3测试,并将其组织到测试套件中,该套件在Eclipse中与JUnit 4默认运行程序成功运行.
现在,我正在添加纯JUnit 4测试的新测试(注释,没有TestCase等).什么是一起运行旧的JUnit 3测试套件和新的JUnit 4测试?
我有一个带有过期DateField的模型.
我想设置一个Admin过滤器,允许用户在"Not Expired"和"Any"之间切换.
模型方法相当简单,日期比较,没问题.
但是,在AdminForm中将其指定为字段或过滤器参数不是自动的.
这样的事情是否可能,如果不是,那将是一个明智的解决方案......
我甚至会开放某种自动删除过期行,但我不知道如何开始这条路.
我刚刚阅读这篇文章,并希望得到大家的建议:
问:应该delete this;从成员方法中调用吗?
我有一项服务,当某些资源不可用时会失败。我已将其配置为尝试重新启动两次,然后在第三次尝试时向我发送一条SMS。不幸的是,windows只允许您选择在特定天数之后重置失败计数,而我真的希望它在每三个失败时重置一次。问题在于,一旦服务再次运行,另一个故障将导致它发送另一条SMS,甚至不尝试重新启动该服务。
因此,我想在我的SMS脚本中包含一些代码以重置故障计数器。我发现以下注册表位置:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \
其中包含失败操作的其他设置(二进制),但据我所知没有计数器。
该sc命令可让您查询各种内容,但不会返回失败计数。
理想情况下,我希望以编程方式查询/重置故障计数器,但是使用命令行或注册表解决方案就可以了(因为我可以编写脚本)。
我开始使用核心动画,我开始想知道如何处理各种鼠标事件,例如
CALayerCALayerCALayer现在我只专注于mouseDown发送到我的自定义视图的消息。根据文档,我应该-hitTest:(CGPoint)point在我的根层上使用调用(使用 进行设置的层[customView setLayer:rootLayer])。
它应该返回树中位于点指定位置的最远层。所以我做了:
[rootLayer hitTest:[event locationInWindow]]
Run Code Online (Sandbox Code Playgroud)
但它不起作用。如果我只是点击它似乎可以工作rootLayer,否则它只会返回null。当然,子图层被添加到rootLayer(实际上它们是被绘制的)
我是否缺少某种坐标转换?除此之外,这是处理鼠标点击的方式吗?
要查找鼠标何时进入 CALayer,我是否必须对鼠标的每次移动更新进行命中测试?
提前致谢
我正在使用Qt Creator构建我的第一个Qt应用程序,一切都很顺利,直到我从一条明显无害的线路开始得到一个奇怪的SIGSEGV.
这是错误:
程序接收信号SIGSEGV,分段故障.QBasicAtomicInt :: ref(this = 0x0)中的0x0804e2fe位于/usr/lib/qt/include/QtCore/qatomic_i386.h:120
通过在gdb上回溯异常,我发现当我返回属性时,一个简单的getter将NULL指针传递给克隆构造函数.
Backtrace输出:
(gdb) backtrace
#0 0x0804e2fe in QBasicAtomicInt::ref (this=0x0) at /usr/lib/qt/include/QtCore/qatomic_i386.h:120
#1 0x0804eb1b in QString (this=0xbfcc8e48, other=@0xbfcc8e80) at /usr/lib/qt/include/QtCore/qstring.h:712
#2 0x0805715e in Disciplina::getId (this=0xbfcc8e7c) at disciplina.cpp:13
[...]
检查传递给QString构造函数的指针:
(gdb)x 0xbfcc8e80
0xbfcc8e80:0x00000000
这是门徒.13:13
QString Disciplina::getId()
{
return id;
}
Run Code Online (Sandbox Code Playgroud)
所以,所有指向QString的复制构造函数的点都接收到一个空指针,这对我来说毫无意义.id被声明为私有QString.
private:
QString id;
Run Code Online (Sandbox Code Playgroud)
好吧,我不知道会发生什么,而且我的调试技巧只能到目前为止,所以如果有人可以提出一个想法我真的很高兴.
谢谢.
编辑
根据要求提供更多代码.
disciplina.h
#ifndef DISCIPLINA_H
#define DISCIPLINA_H
#include <QString>
#include <QMap>
#include "curso.h"
#include "turma.h"
class Curso;
class Turma;
class Disciplina
{
private:
unsigned …Run Code Online (Sandbox Code Playgroud) 关于SO的另一个问题是将一些语言中的工具用于散列字符串,以便在表格中快速查找.两个例子是.NET中的dictionary <>和Python中的{}存储结构.其他语言当然支持这种机制.C++有它的地图,LISP和大多数其他现代语言一样具有等价物.
在问题的答案中争论的是,字符串上的哈希算法可以在一个持续时间内进行,其中一个SO成员具有25年的编程经验,声称任何事物都可以在恒定时间内进行哈希处理.我个人的论点是,这不是真的,除非你的特定应用程序在字符串长度上设置边界.这意味着一些常数K将决定字符串的最大长度.
我熟悉使用散列函数进行操作的Rabin-Karp算法,但是这个算法没有规定要使用的特定散列函数,作者建议的那个是O(m),其中m是长度.哈希字符串.
我看到一些其他页面,例如这个(http://www.cse.yorku.ca/~oz/hash.html)显示了一些哈希算法,但似乎每个页面都在字符串的整个长度上迭代达到它的价值.
根据我对该主题的相对有限的阅读,似乎大多数字符串类型的关联数组实际上是使用散列函数创建的,该散列函数在引擎盖下运行某种树.这可以是AVL树或红/黑树,其指向键/值对中的值元素的位置.
即使使用这种树结构,如果我们要保持theta(log(n))的顺序,n是树中元素的数量,我们需要有一个恒定时间的哈希算法.否则,我们会对字符串进行迭代处理.尽管对于包含许多字符串的索引,theta(m)会被theta(log(n))黯然失色,但如果我们处于这样一个域中,我们搜索的文本将非常大,我们就不能忽略它.
我知道后缀树/数组和Aho-Corasick可以将搜索降低到theta(m)以获得更大的内存费用,但是我要问的是,如果存在任意长度的字符串的常量时间哈希方法,那么其他SO成员声称.
谢谢.
我最近碰到了一个我在互联网上找不到的问题 - 我正在初始化AVAudioPlayer播放音频文件,并收到以下错误:
Error Domain=NSOSStatusErrorDomain Code=-50 "Operation could not be completed. (OSStatus error -50.)
Run Code Online (Sandbox Code Playgroud)
事实证明,我在创建NSURL发送到音频播放器init方法时犯了一个错误,导致NSURL对象为空.愚蠢的错误,调试时很容易找到,但我想我会在这里列出它以防万一其他人做同样的事情.