通过Reflector查看.NET 3.5源,当Protected OnBubbleEvent检测到ChangePassword按钮事件时,它调用attemptChangePassword()。该方法的实现大致如下:
private void AttemptChangePassword() {
...
this.OnChangingPassword(loginCancelEventArgs);
if(!e.Cancel) {
MembershipProvider provider = LoginUtil.GetProvider(this.MembershipProvider);
...
}
看起来你可以:
-
向ChangingPassword事件添加处理程序
-
在该事件处理程序中,使用控件的用户名和newpassword属性来执行您自己的自定义工作。
-
成功后,请重定向到新的URL或在事件参数上设置取消标志,并手动隐藏ChangePassword控件。似乎没有一种简单的方法可以将SuccessView与此技术结合使用。
所以看起来有点可能,但是控件的设计绝对没有考虑到这种使用——它与成员资格提供者的连接非常好。