I got round this email problem by creating another email storage which is staored as an extra profile for every user created in an account. If you dont know obout "adding extra profile settings" theres loads of info out there to look out. Anyway heres a solusion for you (VB
In the web config you need to define and setup an extra piece of profile info "EmailEdit" (this info is available on all your web pages and is hardcoded (VS gives you help when typing the code));
<add name="EmailEdit" type="String"/>
When the user creates an account we pinch the email address typed in the standard createaccount function that vs2005+ gives us and then add the same email to our "EmailEdit" profile; for example in the "CreateAccount.aspx.vb
" under the "continue button click" we could add;
Dim EmailEditable As TextBox = CreateUserWizard1.CreateUserStep.ContentTemplateCo ntainer.FindControl("Email")
Dim userProfile As ProfileCommon = ProfileCommon.Create(User.Identity.Name, True)
userProfile.EmailEdit = EmailEditable.Text
So the above saves the email address for each user, now we can access their email anywhere within our site by simply the following
Dim AnyString A String = Profile.EmailEdit
(of course the user must be logged in or we would simply get = "")
We can also change this email address bat anytime by;
Dim NewEmail As String = "JoeBloggs@Hotmail.com"
Profile.EmailEdit = NewEmail
We can also change the the EditEmail value of any of our users without them being logged in by first definng whis user we want to change, to do this call the profile info of a particular user using his/her name first:
Dim userProfile As ProfileCommon = CType(ProfileCommon.Create("TheUserNameAsString", True), ProfileCommon)
userProfile.EmailEdit = "JoeBloggs@Hotmail.com"
Hope this helps, this is just a quick peep at what you can do with user profiles, you can manage things like "user credits" etc.