我正在使用WPF WebBrowser在应用程序内显示在线帮助(只是几个小网页).其中一些页面使用cookie仅在页面被查看的前几次显示项目(这是"为什么不尝试X"类型的东西).
但是,由于某种原因,cookie似乎不在WebBrowser控件内部工作.它们在完整的IE以及Firefox和Chrome中运行良好(因此项目正确隐藏),但是当通过WPF WebBrowser控件查看时它们永远不会隐藏.
在WPF WebBrowser控件中使用cookie有什么特别之处吗?它似乎表现得好像所有的cookie都只存储在内存中,而不是存储在磁盘上.
这是浏览器中的一个页面(cookie工作的地方):

这里是应用程序内的完全相同的页面:

这个附加内容应该只在使用软件的前几次可见(即它应该在该网页的N个视图之后隐藏),但是因为我无法获得cookie,所以它总是可见的.
我在我的Web应用程序上有这个配置.2豆:
1°Bean - 它检查登录;
@ManagedBean(name="login")
@SessionScoped
public class Login {
private String nickname;
private String password;
private boolean isLogged;
public String getNickname() { return nickname; }
public void setNickname(String newValue) { nickname=newValue; }
public String getPassword() { return password; }
public void setPassword(String newValue) { password=newValue; }
public void checkLogin() {
... i check on db the nickname and the password ...
if(USER EXIST) {
isLogged=true;
} else {
isLogged=false;
}
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
2°Bean - 管理用户参数:
@ManagedBean(name="user")
@SessionScoped …Run Code Online (Sandbox Code Playgroud) 我试图设置一个布尔值,但它不会让我设置为true.它一直告诉我YES重新定义.我使用的方法#define YES (q1);,其中q1是布尔.
我们知道必须组合alloc和init的alloc/init的完整模式.
NSObject *myObj = [[NSObject alloc] init];
Run Code Online (Sandbox Code Playgroud)
1- init方法从另一个源接收对象(不是来自alloc,new,copy或类似或保留),因此根据基本的内存管理规则,它不是所有者,也不能释放它.但是,"分配和初始化对象/返回对象"文章说init可以释放接收器.
当它违背基本规则时,这怎么可能呢?
2-此外,从同一篇文章中,init可以返回另一个对象或nil.因此,在这种情况下,当我们使用alloc/init的完整模式时,我们无法释放alloc返回的对象,但我们只能释放从init返回的对象,并且init释放它从alloc而不是我们收到的对象.
但是init不是alloc,new,copy或者类似的方法,因此我们不能释放从它返回的对象,因为它不会给我们对象的所有权.
我们如何释放从init返回的对象,尽管这违反了基本规则?
3-或者,为了遵守同一篇文章的最后一段,我们必须接受init方法作为特例并使用alloc/init模式作为基本规则的例外吗?
内存管理基本规则:
- 您只释放或自动释放您拥有的对象.
- 如果使用名称以"alloc"或"new"开头或包含"copy"(例如,alloc,newObject或mutableCopy)的方法创建对象,或者向其发送保留消息,则获取对象的所有权.
- 您使用release或autorelease放弃对象的所有权.autorelease只是意味着"将来发送一条发布消息"(了解这将是什么时候,请参阅"Autorelease Pools"). http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmRules.html
分配和初始化对象/返回的对象:
但是,在某些情况下,此责任可能意味着返回与接收者不同的对象.例如,如果一个类保留了一个命名对象列表,它可能会提供一个initWithName:方法来初始化新实例.如果每个名称只能有一个对象,initWithName:可能会拒绝为两个对象分配相同的名称.当要求为新实例分配一个已被另一个对象使用的名称时,它可以释放新分配的实例并返回另一个对象 - 确保名称的唯一性,同时提供所要求的内容,实例请求的名称.
在少数情况下,init ...方法可能无法按照要求执行操作.例如,initFromFile:方法可能从作为参数传递的文件中获取所需的数据.如果传递的文件名与实际文件不对应,则无法完成初始化.在这种情况下,init ...方法可以释放接收器并返回nil,表示无法创建请求的对象.
因为init ... 方法可能返回除了新分配的接收者以外的对象,甚至返回nil,所以程序使用初始化方法返回的值,而不仅仅是alloc或allocWithZone返回的值,这一点很重要.以下代码非常危险,因为它忽略了init的返回.
Run Code Online (Sandbox Code Playgroud)id anObject = [SomeClass alloc]; [anObject init]; [anObject someOtherMessage];相反,为了安全地初始化对象,您应该在一行代码中组合分配和初始化消息.
Run Code Online (Sandbox Code Playgroud)id anObject = [[SomeClass alloc] init]; [anObject someOtherMessage];
cocoa memory-management allocation initialization objective-c
我们有一个通过RMI进行通信的客户端/服务器应用程序.服务器将HashMaps发送到客户端.一切正常,但是当发送大型HashMaps时,传输时间可能很慢.
有没有办法在发送之前压缩HashMaps,然后在客户端上解压缩?我不想在磁盘上创建任何文件(所有文件必须在RAM中)
谢谢
所以我创建了简单的 Consol 应用程序:FFmpeg RTSP 视频流阅读器(仅使用通用的 FFmpeg C API)但是当 ffmpeg 从 RTSP 读取时,它显示了很多信息。我没有问是否......至少不是全部......那么我如何过滤ffmpeg输出的内容?我的意思是,在他所有的用户开发人员中,只有一条重要的线路,例如:missing picture in acsess unit那么如何为 ffmpeg 设置一些过滤机制,而不是输出它想要的所有内容,让我的开发人员抓住我想要的消息出现的那一刻?(在我的项目中,我使用 Boost 库在 Visual Studio 下用 C++ 编写)
我是Linq的新手请指导我一些基本的事情.
在阅读Linq的一些文章.一些authers从Linq查询中填充var中的数据,一些填充自定义类型对象的列表,一些填充IEnumerable中的数据,一些填充IQuryable中的数据.我无法得到这些4中的不同之处以及应该在哪种情况下使用哪一个.
我想使用Linq to SQL.我该怎么用?
linq linq-to-objects linq-to-entities linq-to-xml linq-to-sql
我想从当前执行进程A.exe启动一个新进程B.exe.
一旦B.exe启动,我想杀死A.exe(当前正在执行的进程).
虽然我可以启动B.exe但我无法关闭当前的进程,即A.exe.
我使用的代码是:
//Start the BT Setup Process
ProcessStartInfo startInfo = new ProcessStartInfo(@"C:\TEST\B.exe");
Process.Start(startInfo);
//Terminate the FSA
Process[] myProcess = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName);
foreach (Process process in myProcess)
{
process.CloseMainWindow();
//all the windows messages has to be processed in the msg queue
//hence call to Application DoEvents forces the MSG
Application.DoEvents();
}
Run Code Online (Sandbox Code Playgroud) 我正在实施单点登录功能,以使用摘要式身份验证自动登录到附属的https网站.目前我的代码是
URL url = new URL(protocol, ip, port, path);
URLConnection connection = url.openConnection(Proxy.NO_PROXY);
connection.connect();
if (connection != null && connection.getHeaderFields() != null) {
if (connection.getHeaderFields().get(AUTHENTICATE_RESPONSE_HEADER) != null) {
Map<String, String> authenticateParameters = identifyAuthentication(connection);
String ha1 = calculateMD5(username + ":" + authenticateParameters.get("realm") + ":" + password);
String ha2 = calculateMD5("GET" + ":" + path);
String response = calculateMD5(ha1 + ":" +
authenticateParameters.get("nonce") + ":" +
"00000001" + ":" +
authenticateParameters.get("qop") + ":" +
ha2);
String authorizationRequest = authenticateParameters.get("challenge") + " " …Run Code Online (Sandbox Code Playgroud) c ×2
java ×2
objective-c ×2
allocation ×1
boolean ×1
boost ×1
browser ×1
c# ×1
c++ ×1
cocoa ×1
compression ×1
cookies ×1
facelets ×1
ffmpeg ×1
hashmap ×1
javabeans ×1
jsf ×1
jsf-2 ×1
linq ×1
linq-to-sql ×1
linq-to-xml ×1
process ×1
rmi ×1
wpf ×1
wpf-controls ×1