DNR*_*DNR 0 c# asp.net collections
我搜索了SO并找到了一些帖子,但无法让他们工作.
问题:如何循环到List Collection(custLoginHist [1]等)中的下一个项目?
List<eCommCustomer.oCustomer> custLoginHist = new List<eComm.oCustomer>();
eCommCustomerDAL.GetCustomerPrevLogin(custLoginHist, oCust);
if (custLoginHist.Count > 0)
{
eCommSecurityFactory oSecFactory = new eCommSecurityFactory();
if (oCust.CustHash == oSecFactory.CreateHash(custLoginHist[0].CustSalt, custLoginHist[0].CustHash))
{
//Password has been used before;
return false;
}
else
{
// Valid password;
return true;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
foreach(eCommCustomer.oCustomer cust in custLoginHist)
{
//Do something with cust here.
}
Run Code Online (Sandbox Code Playgroud)
要么:
for(int i = 0; i != custLoginHist.Count; ++i)
{
eCommCustomer.oCustomer cust = custLoginHist[i];
//Do something with cust here.
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我们希望为任何单个匹配返回false,否则返回true,因此:
foreach(eCommCustomer.oCustomer cust in custLoginHist)
if(oCust.CustHash == oSecFactory.CreateHash(custLoginHist[0].CustSalt, custLoginHist[0].CustHash)
return false;
return true;//if we reached here, no matches.
Run Code Online (Sandbox Code Playgroud)
这是一个坏主意,因为你已经更容易进入系统.如果我尝试将密码设置为某些内容,并且您拒绝,我现在知道您的某个用户使用了该密码.尽管你应该通过质量检查阻止一些更可能的违规者("密码","密码1"等),但你最好让这种情况发生.
| 归档时间: |
|
| 查看次数: |
814 次 |
| 最近记录: |