0
我的網絡表單中有密碼恢復控件。 輸入所有必要的特定信息後,電子郵件將發送到用戶的電子郵件帳戶。對象引用在發送URL時未設置爲對象的實例
這就像 - 如果用戶忘記他/她的密碼,發送密碼更改鏈接到用戶的電子郵件帳戶,而不是一個新的密碼。
但是,點擊提交按鈕後,「對象引用未設置爲對象的實例」。出現錯誤。
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object. And the error occurred on line 66.
Source Error:
Line 64: System.Web.UI.WebControls.Login Login1 = (System.Web.UI.WebControls.Login)LoginView1.FindControl("Login1");
Line 65: MembershipUser pwRecover = Membership.GetUser(Login1.UserName);
**Line 66: Guid userInfoId2 = (Guid)pwRecover.ProviderUserKey;**
以下爲在郵件正文發送URL的背後代碼:
protected void PasswordRecovery1_SendingMail(object sender, MailMessageEventArgs e)
{
System.Web.UI.WebControls.Login Login1 = (System.Web.UI.WebControls.Login)LoginView1.FindControl("Login1");
MembershipUser pwRecover = Membership.GetUser(Login1.UserName);
Guid userInfoId2 = (Guid)pwRecover.ProviderUserKey;
//Create an url that will link to a UserProfile.aspx and
//accept a query string that is the user's id
//setup the base of the url
string domainName = Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath;
//setup the second half of the url
string confirmationPage = "/UserProfile.aspx?ID=" + userInfoId2.ToString();
//combine to make the final url
string url = domainName + confirmationPage;
// Replace <%VerifyUrl%> placeholder with url value
e.Message.Body = e.Message.Body.Replace("<%ResetPassword%>", url);
}
嗨,我已經找出問題所在。 我從錯誤的地方檢索用戶名。 我應該從密碼恢復控制的第一步檢索用戶名,而不是從登錄用戶名文本框中檢索用戶名。 由於我沒有在登錄內輸入任何內容,這就是爲什麼它會出現這個錯誤。 – user1467175