all groups > asp.net security > october 2007 >
You're in the

asp.net security

group:

How To Add User's GUID To An Account Verification E-mail


How To Add User's GUID To An Account Verification E-mail Jonathan Gill
10/27/2007 6:37:00 PM
asp.net security:
Hi everyone,
So I have a problem that is more difficult that it might seem at first
glance. created. Any help/a clever "duh" answer would be great as we've
spent more than 8 hours trying to get this working.

Please see the following thread for the full details:

"How To Add User's GUID To An Account Verification E-mail - E-mail Working,
Error In Retreiving GUID"

http://forums.asp.net/p/1172523

----
am receiving an error when I try to retrieve a newly (and
successfully...checked the DB) registered users GUID to include in an account
verification e-mail. I am using the e-mail that is sent by the membership
provider, however I am adding an extra step for the user to verify their
account. The e-mail works fine as long as I don't try and use the user's
GUID. The verification of a user's account step uses a newly defined
placeholder (<% Username %> and <% Password %> are supported by default in
asp.net membership) in the .txt file that is the basis for the e-mail. I can
get the placeholder to replace fine in the e-mail, however I get an error
when I try to include the user's GUID in the e-mail.

Here are examples:
http://www.pcw.co.uk/personal-computer-world/features/2153686/membership-rules?page=3,
http://dotnetjunkies.com/WebLog/saravana/archive/2006/04/30/137645.aspx

Any help with fixing the error is appreciated. Thanks!



Error

System.NullReferenceException was unhandled by user code
Message="Object reference not set to an instance of an object."
Source="App_Web_rih02pg9"
StackTrace:
at signup.CreateUserWizard1_SendingMail(Object sender,
MailMessageEventArgs e) in C:\Documents and Settings\Owner\My
Documents\Visual Studio 2005\WebSites\Test\Signup.aspx.vb:line 81
at
System.Web.UI.WebControls.CreateUserWizard.OnSendingMail(MailMessageEventArgs
e)
at System.Web.UI.WebControls.LoginUtil.SendPasswordMail(String email,
String userName, String password, MailDefinition mailDefinition, String
defaultSubject, String defaultBody, OnSendingMailDelegate
onSendingMailDelegate, OnSendMailErrorDelegate onSendMailErrorDelegate,
Control owner)


Protected Sub CreateUserWizard1_SendingMail(ByVal sender As Object,
ByVal e As System.Web.UI.WebControls.MailMessageEventArgs) Handles
CreateUserWizard1.SendingMail
Dim tempMem As MembershipUser =
Membership.GetUser(CreateUserWizard1.UserName)

'Replace placeholder for the verification URL
e.Message.Body = Replace(e.Message.Body, "<% VerifyURL %>",
"http://www.test.com/VerifyAccount.aspx?key=" &
tempMem.ProviderUserKey.ToString) ' Error occurs on this line
'Line below will work and replace the placeholder in the e-mail file
'e.Message.Body = e.Message.Body.Replace("<% VerifyURL %>",
"http://www.test.com/VerifyAccount.aspx?key=123)

End Sub Protected Sub CreateUserWizard1_SendingMail(ByVal sender As
Object, ByVal e As System.Web.UI.WebControls.MailMessageEventArgs) Handles
CreateUserWizard1.SendingMail
Dim tempMem As MembershipUser =
Membership.GetUser(CreateUserWizard1.UserName.ToString)
MsgBox(tempMem.ProviderUserKey.ToString) ' Will return error here

'Replace placeholder for the verification URL
e.Message.Body = Replace(e.Message.Body, "<% VerifyURL %>",
"http://www.test.com/VerifyAccount.aspx?key=" &
tempMem.ProviderUserKey.ToString) ' Error occurs on this line
'Line below will work and replace the placeholder in the e-mail file

'e.Message.Body = e.Message.Body.Replace("<% VerifyURL %>",
"http://www.test.com/VerifyAccount.aspx?key=123)
Re: How To Add User's GUID To An Account Verification E-mail Alexey Smirnov
10/28/2007 12:00:00 AM
On Oct 28, 2:37 am, Jonathan Gill
[quoted text, click to view]

Link doesn't work


[quoted text, click to view]

It means your GUID is null, try to check it before making a call.
Re: How To Add User's GUID To An Account Verification E-mail Jonathan Gill
10/28/2007 9:09:00 AM
Yes, Membership.Getuser says the user is null, but it is not. If I set a
break point before I call Membership.GetUser in the CreatedUser event of the
CreateNewUserWizard or even inthe SendingMil event which fires after
CreatedUser then I can manully check the DB and see all of the user's details
saved.

[quoted text, click to view]
Re: How To Add User's GUID To An Account Verification E-mail Alexey Smirnov
10/29/2007 2:08:25 AM
On Oct 28, 5:09 pm, Jonathan Gill
[quoted text, click to view]

What line is #81?
RE: How To Add User's GUID To An Account Verification E-mail Jonathan Gill
10/29/2007 5:54:01 AM
Finally, determined the cause of the error. The DB had two application IDs
while I specified the applicationName in the membership provider, I needed to
specify the applicationName that I was looking for users in.



[quoted text, click to view]
AddThis Social Bookmark Button