Tenía un sitio web que contiene un control createuserwizard. Y al crear una cuenta, el correo electrónico de verificación junto con su URL de verificación se enviarán a la dirección de correo electrónico del usuario.Guid debería contener 32 dígitos con 4 guiones
Sin embargo, cuando tengo una ejecución de prueba, al hacer clic en la URL del correo electrónico, aparecerá este error:
Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
Source Error:
Line 17: {
Line 18: //store the user id
*Line 19: Guid userId = new Guid(Request.QueryString["ID"]);*
Line 20:
Error appeared on LINE 19.
Otro Lo curioso es que la URL de verificación en mi prueba de gestión parecer extraño:
http://localhost:4635/WebSite2/Verify.aspx?ID=System.Security.Principal.GenericPrincipal
Normalmente, la URL debe así (lo cual es una gran cantidad de caracteres al final de la URL:
http://localhost:2180/LoginPage/EmailConfirmation.aspx?ID=204696d6-0255-41a7-bb0f-4d7851bf7200
En realidad estaba pensando que, hay una conexión con el final de la URL con mi problema del error (Guid debe contener 32 dígitos con 4 guiones) ..
El código que genera la URL es el siguiente:
protected void CreateUserWizard1_SendingMail(object sender,MailMessageEventArgs e)
{
string domainName = Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath;
string confirmationPage = "/Verify.aspx?ID=" + User.ToString();
string url = domainName + confirmationPage;
e.Message.Body = e.Message.Body.Replace("<%VerificationUrl%>", url);
}
Por favor, dame sugerencias y qué debo hacer para resolver este problema.
Gracias de antemano.
ACTUALIZACIÓN:
protected void CreateUserWizard1_SendingMail(object sender,MailMessageEventArgs e)
{
MembershipUser userInfo = Membership.GetUser(CreateUserWizard1.UserName);
Guid userInfoId = (Guid)userInfo.ProviderUserKey;
string domainName = Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath;
string confirmationPage = "/Verify.aspx?ID=" + userInfo.ToString();
string url = domainName + confirmationPage;
e.Message.Body = e.Message.Body.Replace("<%VerificationUrl%>", url);
}
Ahora mi URL siguiente aspecto:
http://localhost:4635/WebSite2/Verify.aspx?ID=username
Pero el error "Guid debe contener 32 dígitos con 4 guiones (xxxxxxxx xxxxxxxx-xxxx- -xxxxxxxxxxxx "sigue siendo
¿Qué le parece mostrar el código que genera el enlace? Eso es claramente donde radica el problema. – spender
este es el código para generar la URL: protected void CreateUserWizard1_SendingMail (remitente del objeto, MailMessageEventArgs e) { // MembershipUser userInfo = Membership.GetUser (CreateUserWizard1.UserName); // Guid userInfoId = (Guid) userInfo.ProviderUserKey; string domainName = Request.Url.GetLeftPart (UriPartial.Authority) + Request.ApplicationPath; cadena confirmationPage = "/Verify.aspx?ID=" + User.ToString(); string url = domainName + confirmationPage; e.Message.Body = e.Message.Body.Replace ("<% VerificationUrl%>", url); } – user1467175