我一直都很好奇...在使用散列密码进行散列时哪个更好:前缀或后缀?为什么?或者它是否重要,只要你加盐?
为了解释:我们所有(希望)现在我们应该知道盐之前,我们哈希它存储在数据库中的密码[ 编辑:所以你能避免类似的事情发生了什么杰夫阿特伍德最近.通常,这是通过在将盐传递给散列算法之前将盐与密码连接来完成的.但是这些例子各不相同......有些例子在密码之前加盐.一些示例在密码后添加salt .我甚至看到过一些尝试将盐放在中间的人.
那么哪种方法更好,为什么呢?有没有一种方法可以减少哈希冲突的可能性?我的谷歌搜索没有找到关于这个问题的体面分析.
编辑:很棒的答案人们!对不起,我只能选一个答案.:)
我们遇到了一个需要解决的有趣情况,我的搜索已经发现了.因此,我呼吁SO社区寻求帮助.
问题是:我们需要以编程方式访问不在我们域中的共享文件,并且不在远程文件共享/ UNC的可信外部域中.当然,我们需要为远程机器提供凭据.
通常,人们可以通过以下两种方式之一解决此问题:
NET USE命令或复制的Win32函数完成NET USE.出于各种各样的原因,我们的安全/网络架构师拒绝了前两种方法.第二种方法显然是一个安全漏洞; 如果远程计算机受到危害,则本地计算机现在处于危险之中.第一种方法是不能令人满意的,因为新安装的驱动器是在程序访问文件期间本地计算机上的其他程序可用的共享资源.尽管这很可能是暂时的,但他们认为这仍然是一个漏洞.
他们对第三个选项开放,但远程网络管理员坚持使用SFTP而不是FTPS,而FtpWebRequest仅支持FTPS.SFTP 是更适合防火墙的选项,我可以使用几个库来实现这种方法,但如果可以的话,我宁愿减少我的依赖项.
我在MSDN上搜索了使用远程文件共享的托管或win32方法,但我没有想出任何有用的东西.
所以我问:还有另外一种方法吗?我是否错过了一个超级秘密的win32功能,可以满足我的需求?或者我必须追求选项3的一些变体吗?
前言:
我设计了一个强接口和完全可模拟的数据层类,它希望业务层TransactionScope在单个事务中包含多个调用时创建.
问题:我希望单元测试我的业务层TransactionScope在我预期的时候使用了一个对象.
不幸的是,使用的标准模式TransactionScope如下:
using(var scope = new TransactionScope())
{
// transactional methods
datalayer.InsertFoo();
datalayer.InsertBar();
scope.Complete();
}
Run Code Online (Sandbox Code Playgroud)
虽然这对于程序员的可用性而言是一个非常好的模式,但测试它已经完成似乎......对我来说是不可能的.我无法检测到已经实例化了一个瞬态对象,更不用说模拟它以确定在其上调用了一个方法.然而,我的报道目标意味着我必须这样做.
问题:如何构建确保TransactionScope按照标准模式正确使用的单元测试?
最后的想法:我已经考虑过一个肯定会提供我需要的覆盖范围的解决方案,但是因为过于复杂并且不符合标准TransactionScope模式而拒绝了它.它涉及CreateTransactionScope在我的数据层对象上添加一个返回实例的方法TransactionScope.但是因为TransactionScope包含构造函数逻辑和非虚方法,因此很难(如果不是不可能)进行模拟,CreateTransactionScope那么返回的实例DataLayerTransactionScope将是一个可模拟的外观TransactionScope.
虽然这可能会起到作用,但它更复杂,我宁愿使用标准模式.有没有更好的办法?
我知道微软有一个类似于uservoice.com的论坛,用于提供功能和错误提交,但它已经让我不知所措,我的google-fu今天下午失败了.然后我想......嘿,Stack Overflow真是一个很棒的问题!所以:
我在哪里可以提交C#语言新功能的官方请求?
我在IIS7中使用表单身份验证来密码保护开发站点,但是当站点仅包含静态HTML文件+ login.aspx + web.config 时,身份验证似乎被绕过.
当我将文件重命名为.aspx时,我提示登录表单我没有做任何花哨的事情.我有一个非常简单的登录脚本,之后它应该重定向到index.html.
有什么建议?总而言之,整个站点使用HTML(目前)并且需要受密码保护.
<authentication mode="Forms">
<forms name="appNameAuth" path="/" loginUrl="~/login.aspx" defaultUrl="index.html" protection="All" timeout="525600">
<credentials passwordFormat="Clear">
<user name="[user]" password="[password]" />
</credentials>
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
Run Code Online (Sandbox Code Playgroud) 我希望使用javascript混淆器.什么是最流行的,它们对性能有什么影响?
我想知道是否有任何人在设计WCF合同方面有一些很好的提示/注意事项,而不是在旧的Microsoft Web服务技术(例如WSE)和非Microsoft技术(例如WSE)方面. Java调用WCF Web服务.
例如:在将DateTime作为合同中的类型公开时,是否需要考虑任何特殊规则?字典和Hashtables怎么样?您可能遇到的各种绑定有哪些问题?
我一直在寻找一个满意的答案,但都失败了.我希望StackOverflow可以为我提供!
我正在使用SharePoint Foundation 2010(我第一次真正尝试深入研究SharePoint),以及(除其他外)自定义Web部件; 该站点的母版页使用客户端提供的CSS文件,我必须遵守该文件.我遇到的问题是SharePoint通过向Web部件HTML结构添加几个特定于SharePoint的CSS类,与客户端的样式冲突.经过一番挖掘,我发现这个ms-WPBody类及其各种元素选择器都是罪魁祸首.
我可以添加!important到客户端样式表中的所有内容,但这是禁止的.我可以在Web部件的子内容中插入一些非常混乱的样式,以试图覆盖SharePoint样式,这是我最近一直追求的过程,但它一直变得混乱.或者,我可以尝试从Web部分中删除该类,这让我想到了我的问题:
如何删除或以其他方式覆盖插入到SharePoint Web部件的HTML结构中的CSS类名?我不太清楚SharePoint的内部工作方式,知道要做什么来实现这一改变,而且我的google-fu在这个问题上失败了.CssClass在ASP.NET Web控件标记上显然被忽略了,可能是一些遗留下来的WebControl.
帮帮我StackOverflow!你是我唯一的希望!
编辑
我很抱歉之前没有说清楚,但我想声明我grok CSS并没有寻找样式的帮助.我真正想要的是如何删除SharePoint发出的CSS类.任何人都可以帮助吗?我要删除CSS标签,因为这似乎让人感到困惑.这个问题并不是关于CSS,而是关于SharePoint.
我无论如何都不是SharePoint专家,而且我一直很难找到正确的信息.请帮忙!
我需要一种方法来使通过调用建立的声明令牌SPFederationAuthenticationModule.SetPrincipalAndWriteSessionToken重新计算令牌上的声明,而无需注销当前用户.有没有办法做到这一点?
关于我为什么这样问的一些背景:
我们在自定义SharePoint 2010 Web应用程序上使用authN/Z的自定义角色和成员资格提供程序.在没有深入了解原因(复杂)的细节的情况下,角色提供者根据主应用数据库中用户的状态为用户创建动态生成的角色名称; 这些角色表示用户的权限,并在SharePoint中用于确定用户对应用程序中的网站和网站集的访问权限.
我们的应用程序中有多种方法可供用户更改其权限,通过角色提供程序有效地添加新角色,从而授予用户在应用程序内的额外访问权限.我们遇到的问题是我们在SP2010中被迫使用的基于声明的身份验证在登录时预先计算权限并在会话令牌中对这些权限进行编码 - 这有效地迫使我们要求用户注销并重新登录可以获得他们的新权限.这是创造各种可用性问题,因此我的问题.
有没有办法以编程方式重新计算会话令牌而不注销用户?
或者我们在错误的树上吠叫?在我正常的愉快的ASP.NET领域,我使用Forms Auth,它在每个请求而不是在登录时计算授权.不幸的是,这似乎不是SP2010中的一个选项,而且我现在更倾向于使用SharePoint.我们可以采取其他一些行动吗?
我使用oledb连接字符串导入excel表.我正在引用12.0对象库.我尝试使用excel 2003和2007,但是得到了同样的例外,如下所示
创建从IClassFactory的CLSID {00020820-0000-0000-C000-000000000046}的COM组件的一个实例失败,原因是以下错误:80010001.
我的代码是
txtpath.Text = fdlg.FileName;
Excel.Worksheet worksheet = new Excel.Worksheet();
Excel.Sheets sheets;
Excel.Workbook theWorkbook;
string SheetName;
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\"" + txtpath.Text + "\";Extended Properties=\"Excel 12.0 Xml;HDR=Yes;\";");
conn.Open();
Excel.Application ExcelObj = null;
ExcelObj = new Excel.Application();
theWorkbook = ExcelObj.Workbooks.Open(txtpath.Text, 0, false, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", true, true, 0, true, 1, 0);
sheets = theWorkbook.Worksheets;
worksheet = (Excel.Worksheet)theWorkbook.Worksheets.get_Item(1);
SheetName = worksheet.Name.Trim();
OleDbDataAdapter da = new OleDbDataAdapter("Select * FROM [" + SheetName + "$]", conn); …Run Code Online (Sandbox Code Playgroud) c# ×4
.net ×2
asp.net ×1
contract ×1
cryptography ×1
datacontract ×1
file-sharing ×1
hash ×1
html ×1
iis-7 ×1
interop ×1
javascript ×1
obfuscation ×1
passwords ×1
salt ×1
sharepoint ×1
transactions ×1
unc ×1
unit-testing ×1
wcf ×1
web-parts ×1
windows ×1