小编Hof*_*off的帖子

用CakePHP和河豚改变密码

我正在尝试设置一个表单,允许用户使用CakePHP 2.3更改密码.使用的算法是河豚.我有以下三个字段:

<?php echo $this->Form->input('old_password', array('type' => 'password', 'autocomplete' => 'off')); ?>
<?php echo $this->Form->input('new_password', array('type' => 'password', 'autocomplete' => 'off')); ?>
<?php echo $this->Form->input('new_password_confirm', array('type' => 'password', 'autocomplete' => 'off', 'label' => 'Confirm Password')); ?>
Run Code Online (Sandbox Code Playgroud)

这是我正在尝试验证他们正确输入旧密码的代码:

$hash = Security::hash($this->request->data['User']['old_password'], 'blowfish');
$correct = $this->User->find('first', array(
    'conditions' => array(
        'User.id' => AuthComponent::user('id'),
        'User.password' => $hash
    ),
    'fields' => array('id')
));
Run Code Online (Sandbox Code Playgroud)

问题是即使我正确输入旧密码,Cake也找不到用户,因为它似乎没有计算正确的哈希值.每次我使用相同的旧密码提交表单时,Cake每次都会生成一个不同的哈希值.这可能是由于我对blowfish/bcrypt算法的工作方式缺乏了解,但我似乎无法弄明白.

我在这里错过了什么?

cakephp blowfish bcrypt cakephp-2.0

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

回发时FormView.DataItem为null

我在ASP.NET页面上使用LinqDataSource和FormView并启用了分页.我试图访问FormView的DataItem属性PageLoad,我在第一页加载时没有任何问题,但只要我在FormView上使用Next/Prev页面按钮(导致回发),DataItem属性为null,即使有记录在FormView中显示.任何想法为什么它在第一页加载但不在回发上正常工作?

如果你很好奇我的PageLoad活动是什么样的,这里是:

protected void Page_Load(object sender, EventArgs e)
{
    Label lbl = (Label)fvData.FindControl("AREALabel");
    if (fvData.DataItem != null && lbl != null)
    {
        INSTRUMENT_LOOP_DESCRIPTION record = (INSTRUMENT_LOOP_DESCRIPTION)fvData.DataItem;
        var area = db.AREAs.SingleOrDefault(q => q.AREA1 == record.AREA);
        if (area != null)
            lbl.Text = area.AREA_NAME;
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net

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

标签 统计

.net ×1

asp.net ×1

bcrypt ×1

blowfish ×1

c# ×1

cakephp ×1

cakephp-2.0 ×1