The PasswordRecovery control is very handy and you can pretty much use it out of the box. But the design might not fit in your site and the styles provided by the control itself might not be what you need. But it’s rather easy to customize the way you want it too. I posted earlier how you could set a PasswordRecovery up and here we’ll look how we can customize it a bit further more.

Here’s an example

[sourcecode language=’html’]




[/sourcecode]

There are three templates to customize, usernametemplate, successtemplate and questiontemplate.  If nothing is changed the control will render a table which you can customize with the help of the inbuilt styles. But I reckon that it’s better to have full control on how you are rendering things.  Basicly, you can take any of the ”xxxxxText” properties and make a literal or label out of it, just take away the Text part. e.g. UserNameTitleText is aquired by giving a literal/label the id of UserNameTitle and so forth (see the code above).  The properties you might want to add is the success and failure text. Remember to add a literal for the failure text. The ID for UserNameFailure is FailureText. Also, last but not least, the button must have the CommandName ”Submit” or else it won’t work.

I’m using the PasswordRecovery control and find it both good and bad. The good part is that its rather simple. It does what it’s supposed to do and its painless to use. If you you’re not bothered with the looks then its really really good since all you need is basicly one row of code. I’ll just post a quickie on how to use the passwordrecovery control in a more friendly way. Nothing new and nothing revolutionary and if you have any ideas or comments to add, I’ll appreciate it and add it to the post.

It’s a simple ”type your e-mail and you’ll get a new password” feature. Without a question to answer and that’s because its based on episerver thinking and your e-mail is more than enough. Anyway, here it comes.

For the Front:

[sourcecode language=’html’]

[/sourcecode]

And thats it. For some reason, everything is centered so I just put in a few left align to make it look better.

For the backend:

[sourcecode language=’csharp’]
protected override void OnLoad(EventArgs e)
{
CreateMail();
base.OnLoad(e);
}

private void CreateMail()
{
ctrlPasswordRecovery.MailDefinition.From = ”email”; //Fetch from db, xml or property
ctrlPasswordRecovery.MailDefinition.Subject = ”Subject”; //Fetch from db, xml or property
ctrlPasswordRecovery.SuccessText = ”Succeded”; //Fetch from db, xml or property
ctrlPasswordRecovery.MailDefinition.BodyFileName = ”RecoverPassword.txt”;
}
[/sourcecode]

And thats it.

The one thing that is really really bad about the passwordrecovery is that you can’t modify the body without using a txt file. i.e you can’t just make a method to generate the mailbody. You can indeed override the sending method and make your own mailbody, BUT, you can’t send the username and password in a format you wish. e.g if you speak another language than english and would like to send the email in say, spanish. I’ve searched around quite a lot but all I’ve found is the same ”make a txt file”. If someone knows how to send the password and username, please let me know.

Otherwise in a txt file you just use <%UserName%> and <%Password%> and in that way you can modify your txtfile however you want.