我使用Apex / Visualforce将自定义门户与自定义网站集成在一起。我想在为站点/门户启用的Visualforce页面上提供自定义密码更改功能。
Site静态类方法几乎没有记录,在梳理了developerforce.com并且空了之后,我想我会尝试这里。这是方法(在示例ChangePasswordController类中找到)
Site.changePassword(newPassword, verifyNewPassword, oldpassword);
这是踢球者。无论我为这些值输入什么数据,包括尊重所有密码策略,该方法只返回null, 不执行任何操作 。有趣的是,在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);
}
}
提前感谢您对此的任何帮助!
答案 0 :(得分:3)
您的VF页面上是否有<apex:pageMessages>
个元素?也许Site类正在设置一条错误消息,除非页面上有此元素,否则您将看不到该消息。