难以让Site.changePassword()工作

时间:2011-12-02 21:07:09

标签: apex-code visualforce

我使用Apex / Visualforce将自定义门户与自定义网站集成在一起。我想在为站点/门户启用的Visualforce页面上提供自定义密码更改功能。

Site静态类方法几乎没有记录,在梳理了developerforce.com并且空了之后,我想我会尝试这里。这是方法(在示例ChangePasswordController类中找到)

Site.changePassword(newPassword, verifyNewPassword, oldpassword);

这是踢球者。无论我为这些值输入什么数据,包括尊重所有密码策略,该方法只返回n​​ull, 不执行任何操作 。有趣的是,在Salesforce提供的示例测试方法中,断言字面上证明了这种情况:

/**
 * An apex page controller that exposes the change password functionality
 */
public with sharing class ChangePasswordController {
    public String oldPassword {get; set;}
    public String newPassword {get; set;}
    public String verifyNewPassword {get; set;}        

    public PageReference changePassword() {
        return Site.changePassword(newPassword, verifyNewPassword, oldpassword);
    }     

    public ChangePasswordController() {}

    public static testMethod void testChangePasswordController() {
        // Instantiate a new controller with all parameters in the page
        ChangePasswordController controller = new ChangePasswordController();
        controller.oldPassword = '123456';
        controller.newPassword = 'qwerty1'; 
        controller.verifyNewPassword = 'qwerty1';                

        System.assertEquals(controller.changePassword(),null);                           
    }    
}

提前感谢您对此的任何帮助!

1 个答案:

答案 0 :(得分:3)

您的VF页面上是否有<apex:pageMessages>个元素?也许Site类正在设置一条错误消息,除非页面上有此元素,否则您将看不到该消息。