有关创建以System.String出它不保护你的SecureString的所有预订一边,怎么能做到呢?
如何将普通的System.Security.SecureString转换为System.String?
我相信很多熟悉SecureString的人会回应说,永远不应该将SecureString转换为普通的.NET字符串,因为它会删除所有安全保护. 我知道.但是现在我的程序用普通字符串完成所有操作,我正在尝试增强其安全性,虽然我将使用返回SecureString的API给我,但我并不是想用它来增加我的安全性.
我知道Marshal.SecureStringToBSTR,但我不知道如何取出BSTR并从中制作System.String.
对于那些可能要求知道我为什么要这样做的人,好吧,我正在从用户那里获取密码并将其作为html表单POST提交以将用户登录到网站.所以......这真的必须使用托管的,未加密的缓冲区.如果我甚至可以访问非托管的,未加密的缓冲区,我想我可以在网络流上进行逐字节流写入,并希望这样可以保证密码的安全性.我希望能够回答至少其中一种情况.
我正在尝试使用类似于以下代码的列表解析来拆分文件:
lines = [x for x in re.split(r"\n+", file.read()) if not re.match(r"com", x)]
Run Code Online (Sandbox Code Playgroud)
但是,行列表始终具有空字符串作为最后一个元素.有没有人知道避免这种情况的方法(不包括后来放一个pop()的淤泥)?
这真是太简单了!我错过了一些东西,我试图解决它已经筋疲力尽了.希望有人可以提供帮助.
CharacterView.m中的Button可以工作,但是在CharacterMale.m中嵌套的按钮却没有.我没有使用IB一切都是按步骤完成的.什么会导致一个按钮工作,而另一个按钮不工作?
/////////////////////////////////////////////////////////////////////////////////
CharacterController.m
/////////////////////////////////////////////////////////////////////////////////
#import "CharacterController.h"
#import "CharacterView.h"
@implementation CharacterController
- (id)init {
NSLog(@"CharacterController init");
self = [ super init ];
if (self != nil) {
}
return self;
}
- (void)loadView {
[ super loadView ];
characterView = [ [ CharacterView alloc ] init];
self.view = characterView;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (void)dealloc {
[super dealloc];
}
@end
/////////////////////////////////////////////////////////////////////////////////
CharacterView.m
/////////////////////////////////////////////////////////////////////////////////
#import "CharacterView.h"
#import "CharacterMale.h"
@implementation CharacterView
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) …Run Code Online (Sandbox Code Playgroud) 是否可以覆盖equals()运算符(即,对于可以由2个或更多字段匹配确定相等性的客户类).
我有一个简单的UserControl用于数据库分页,它使用控制器来执行实际的DAL调用.我使用a BackgroundWorker来执行繁重的工作,并在OnWorkCompleted事件中重新启用一些按钮,更改TextBox.Text属性并为父表单引发事件.
表单A保存我的UserControl.当我点击打开表单B的某个按钮时,即使我没有做任何"那里"并且只是关闭它,并尝试从我的数据库中引入下一页,OnWorkCompleted在工作线程上调用它(而不是我的主线程),并抛出一个跨线程异常.
目前我InvokeRequired在那里的处理程序中添加了一个检查,但是不是OnWorkCompleted要在主线程上调用的全部内容?为什么不按预期工作?
编辑:
我已经设法将问题缩小到arcgis和BackgroundWorker.我有以下解决方案,它添加了一个命令到arcmap,打开一个简单Form1的两个按钮.
第一个按钮运行BackgroundWorker睡眠500毫秒并更新计数器.在该RunWorkerCompleted方法中,它检查InvokeRequired并更新标题,以显示该方法最初在主线程或工作线程内运行.第二个按钮刚打开Form2,不包含任何内容.
首先,所有调用RunWorkerCompletedare都在主线程内完成(正如预期的那样 - 这就是RunWorkerComplete方法的最后一点,至少我从MSDN上了解到的BackgroundWorker)
打开和关闭后Form2,RunWorkerCompleted始终在工作线程上调用.我想补充一点,我可以将此解决方案保留原样(InvokeRequired在RunWorkerCompleted方法中检查),但我想了解为什么它会违背我的期望.在我的"真实"代码中,我想知道该RunWorkerCompleted方法是在主线程上调用的.
我设法form.Show();在我的命令中指出问题BackgroundTesterBtn- 如果我使用ShowDialog(),我没有问题(RunWorkerCompleted总是在主线程上运行).我需要Show()在我的ArcMap项目中使用,以便用户不会绑定到表单.
我还尝试在正常的WinForms项目上重现该错误.我添加了一个简单的项目,只打开没有ArcMap的第一个表单,但在这种情况下我无法重现错误 - RunWorkerCompleted主线程上的运行,无论是我使用的Show()还是ShowDialog()在打开之前和之后Form2.我尝试在我之前添加第三个表单作为主要表单Form1,但它没有改变结果.
这是我的简单sln(VS2005sp1) - 它需要
ESRI.ArcGIS.ADF(9.2.4.1420)
ESRI.ArcGIS.ArcMapUI(9.2.3.1380) …
创建灵活的角落http://i44.tinypic.com/29d4ih.jpg
我想创建基于DIV的灵活角落.如图所示.这不是常规的圆角,而是更复杂的东西.这就像挑战 一样.
请注意,我想要基于图像的圆角,所以请根据要求给出答案.
非常感谢
我在互联网上使用的一些资源在集合关联缓存的工作方式上存在分歧.
例如硬件机密似乎相信它的工作原理如下:
然后,主RAM存储器被划分为存储器高速缓存中可用的相同数量的块.保持512 KB 4路组关联示例,主RAM将被分成2,048个块,内存缓存中可用的块数相同.每个内存块都链接到缓存中的一组行,就像在直接映射缓存中一样.
http://www.hardwaresecrets.com/printpage/481/8
他们似乎在说每个缓存块(4个缓存行)映射到特定的连续RAM块.他们说不连续的系统内存块(RAM)无法映射到同一个缓存块.
这是有关hardwaresecrets认为它如何工作的图片 http://www.hardwaresecrets.com/fullimage.php?image=7864
与维基百科的关联缓存图片对比 http://upload.wikimedia.org/wikipedia/commons/9/93/Cache%2Cassociative-fill-both.png.
布朗不同意硬件机密
考虑如果每个高速缓存行具有两组字段可能发生的情况:两个有效位,两个脏位,两个标记字段和两个数据字段.一组字段可以缓存主存储器的一个区域的数据,另一组字段可以缓存到恰好映射到同一缓存线的另一个区域.
http://www.spsu.edu/cs/faculty/bbrown/web_lectures/cache/
也就是说,非连续的系统存储器块可以映射到相同的高速缓存块.
如何创建系统内存和缓存块上的非连续块之间的关系.我在某处读到这些关系是基于缓存步幅的,但除了它们存在之外,我找不到有关缓存步幅的任何信息.
谁是对的?如果实际使用了跨步,那么跨步工作如何?我是否拥有正确的技术名称?如何找到特定系统的步幅?它是基于寻呼系统?有人能指出一个能够详细解释N路组关联缓存的网址吗?
另见:http: //www.cs.umd.edu/class/sum2003/cmsc311/Notes/Memory/set.html
caching operating-system memory-management systems-programming
我正在尝试在程序集中编写一个函数,它将检测更长的二进制数是否包含更小的二进制模式.
示例:100111
是否包含1001?
当我读到这个问题时,我想我会用一个大数字及其较小的模式进行按位-AND,同时每次在循环中右移(逻辑).
所以,在我的脑海里,我认为它会做:
100111 AND 1001 = 0
Shift-right 1
010011 AND 1001 = 0
Shift-right 1
001001 AND 1001 = 1 // Pattern FOUND!
Run Code Online (Sandbox Code Playgroud)
并重复此操作,直到数字被移动直到它为零或AND返回1.
但是,我想我必须有一些困惑,因为在第一次循环运行时,我输入的大部分内容都会返回1.我对AND的使用感到困惑吗?
我对数据库模式样本有点奇怪,我认为大多数项目都需要为它设计一个数据库.但是当我尝试在线查找样本时,这种情况确实很少见(例如,库存管理,学校管理,人力资源管理的完整数据库架构).我知道每个数据库设计都取决于项目要求,但我认为它并没有太大的不同.
我只是想知道为什么很少有人像其他源代码一样在网上踢它.
谁能指出我在哪里得到它或任何建议?
提前致谢