小编hen*_*sen的帖子

是否有任何研究支持或反对频繁更改密码?

我正在寻找关于频繁更改密码的安全性影响的研究,查看每一个或两个月或类似的强制密码更改所带来的安全性好处/问题.

有谁知道吗?

security passwords

18
推荐指数
2
解决办法
5570
查看次数

没有"身份"的最佳方式获取下一个ID号码

我必须在遗留数据库的表中插入一些记录,并且由于它被其他古代系统使用,因此更改表不是解决方案.

问题是目标表有一个int主键但没有标识规范.所以我必须找到下一个可用的ID并使用它:

select @id=ISNULL(max(recid)+1,1) from subscriber
Run Code Online (Sandbox Code Playgroud)

但是,我想阻止其他应用程序在我执行此操作时插入到表中,以便我们没有任何问题.我试过这个:

begin transaction
    declare @id as int
    select @id=ISNULL(max(recid)+1,1) from subscriber WITH (HOLDLOCK, TABLOCK)
    select @id
    WAITFOR DELAY '00:00:01'
    insert into subscriber (recid) values (@id)
commit transaction
select * from subscriber
Run Code Online (Sandbox Code Playgroud)

在SQL Management Studio中的两个不同的窗口中,一个事务总是作为死锁牺牲品被杀死.

我也先尝试过SET TRANSACTION ISOLATION LEVEL SERIALIZABLE相同的结果......

有什么好的建议,我怎么能确保我得到下一个id并使用它而不用担心其他人(或我!)被冲洗?

很抱歉没有提到这个,但这是一个SQL 2000服务器所以我不能使用像FOR UPDATE和OUTPUT这样的东西

更新:这是适合我的解决方案:

BEGIN TRANSACTION
    DECLARE @id int

    SELECT  @id=recid
    FROM    identities WITH (UPDLOCK, ROWLOCK)
    WHERE table_name = 'subscriber'

    waitfor delay '00:00:06'

    INSERT INTO subscriber (recid) values (@id)

    UPDATE identities …
Run Code Online (Sandbox Code Playgroud)

sql sql-server deadlock locking transactions

8
推荐指数
1
解决办法
2万
查看次数

调试从托管应用调用的C++代码时看不到变量内容

我有一些本机C DLL,我从托管C++类库("Rem")调用.在"Rem"类库中,我有一个本机C++类(api)和一个托管C++类(API).

托管类(API)现在从C#控制台应用程序调用(稍后将在Web应用程序中使用).

在调试时,我可以通过我的本机代码就好了.

我的问题是,当我调试时,除了本地声明的简单类型之外,我看不到任何变量的值.

函数参数在调试器中不可用,如果我尝试将它们添加为Watch,它只是说"error:identifier'model_name'超出范围"('schema_name'是变量名)

任何结构只在快速监视和监视窗口中显示值"{...}". 在此输入图像描述

如果我尝试将一个监视添加到结构中的字段,我会得到值"error:'entryList.numItems'不存在"

我试过的东西:

  • 我已经尝试在托管C++中创建一个Console应用程序并从中进行调试,同样的事情.

  • 我尝试取消选中Tools-> Options-> Debugging-> General-> Managed C++ Compatibility Mode,然后我根本无法进入代码(没有为断点加载符号)

  • 在C#console app项目中,我进入了Properties-> Debug并选中了"启用本机代码调试"(并取消选中)

  • 在C++类库中,我进入了Properties-> Debugging-> Debugger Type并尝试了"Mixed","Native","Managed"和"Auto".

关于我做错了什么的任何建议?

c++ debugging managed-c++ visual-studio-debugging

7
推荐指数
1
解决办法
4093
查看次数

如何防止VS WPF设计器在工具箱中的每个对象上放置边距

当我将控件从工具箱拖到Visual Studio 2008 WPF设计图面时,它会根据我删除它的位置和默认大小设置边距.

有没有办法阻止VS设置那些?当我将控件放在stackpanel上时,我希望它能够流入面板中的现有控件.

谢谢!

wpf designer wpf-controls visual-studio-2008

5
推荐指数
1
解决办法
1106
查看次数

验证NHibernate是否延迟加载了多对一属性

我有一个项目和一个人(有点简化):

public class Project
{
    public virtual Person CreatedBy { get; set; }
}

public class Person
{
    public virtual string Username { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在与NH Linq合作一个项目:

var projects = from p in session.Query<Project>()
             select p;
var project = projects.First();
Run Code Online (Sandbox Code Playgroud)

有时使用Fetch()

var project = projects.Fetch(p => p.CreatedBy).First();
Run Code Online (Sandbox Code Playgroud)

现在,我怎样才能在一个单元测试验证project.CreatedBy 不是急切装载(和反向),这取决于如果取(),使用?在我的理解中,使用Fetch()应该急切加载Person,如果我不使用Fetch(),它应该延迟加载Person.

我试过了

Assert.IsTrue(NHibernateUtil.IsInitialized(project.CreatedBy));
Run Code Online (Sandbox Code Playgroud)

NHibernateUtil.IsPropertyInitialized(project, "CreatedBy")
Run Code Online (Sandbox Code Playgroud)

但是无论我是否使用Fetch(),它们都返回true.IsInitialized()适用于集合(一对多),例如Person.Projects,但不适用于多对一...

CreatedBy属性应该是延迟加载的,但有时我希望它被急切加载,我希望单元测试确认它正在按预期工作.

CreatedBy属性的映射是

<many-to-one name="CreatedBy" class="Person" fetch="select">
  <column name="PERSON_ID" precision="10" scale="0" not-null="true" />
</many-to-one>
Run Code Online (Sandbox Code Playgroud)

我验证了这样的映射:

var to1 = NHibernateConfiguration.GetClassMapping(typeof(Project))
    .ReferenceablePropertyIterator.FirstOrDefault(p => …
Run Code Online (Sandbox Code Playgroud)

nhibernate lazy-loading nhibernate-mapping

1
推荐指数
1
解决办法
2888
查看次数