Migrar usuario anonimo
-
2011年9月13日 14:47
hola, en mi aplicacion tengo definida una propiedad en el webconfig, en el Profile, aqui les dejo el codigo:
<profile enabled="true" > <providers> <clear/> <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/> </providers> <properties> <add name="AnunciosVisitados" type="System.Collections.Generic.List`1[System.String]" allowAnonymous="true" /> <add name="RecibirRecomendaciones" type="bool" allowAnonymous="false"/> </properties> </profile>
el caso es que necesito que cuando el usuario anonimo se autentica en la aplicacion, los valores que se guardaron en la variable AnunciosVisitados para el usuario anonimo, se pasen al perfil del usuario registrado, eh visto este link:http://msdn.microsoft.com/en-us/library/ewfkf772.aspx
aqui encontre este codigo
public void Profile_OnMigrateAnonymous(object sender, ProfileMigrateEventArgs args) { ProfileCommon anonymousProfile = Profile.GetProfile(args.AnonymousID); Profile.ZipCode = anonymousProfile.ZipCode; Profile.CityAndState = anonymousProfile.CityAndState; Profile.StockSymbols = anonymousProfile.StockSymbols; //////// // Delete the anonymous profile. If the anonymous ID is not // needed in the rest of the site, remove the anonymous cookie. ProfileManager.DeleteProfile(args.AnonymousID); AnonymousIdentificationModule.ClearAnonymousIdentifier(); // Delete the user row that was created for the anonymous user. Membership.DeleteUser(args.AnonymousID, true); }
El problema es que no consigo encontrar en el intellisense algunas clases como ProfileCommon, o el metodo GetProfile, tengo que hacer algo adicionalmente?.
Tambien quisiera saber si este codigo tiene que ir en el global.asax o quiza en el controlador Account y si al migrar de anonimo a logged, ASP.NEt me crea un perfil para el usuario logueado como lo hace para los usuarios anonimomos.
Muchas gracias de antemano, estare atento a sus consejos.
Saludos cordiales
全部回复
-
2011年9月21日 20:08
Hola Richof,
Por ejemplo, en la platilla por defecto, podrias crear el profile despues del register:
[HttpPost]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Attempt to register the user
MembershipCreateStatus createStatus;
Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);
if (createStatus == MembershipCreateStatus.Success)
{
FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
HttpContext.Profile.Initialize(model.UserName, true);
HttpContext.Profile.Save();
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("", ErrorCodeToString(createStatus));
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
Con eso crearías el perfil y ahí tendrías que copiar tus valores, en el metodo logon igual, pero siempre después de que se haga el login, es decir después de:
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
Un saludo!
Colabora con el foro: Si este mensaje te es de utilidad márcalo como respuesta.
Alfredo Fernández
-
2012年2月7日 16:40
alfredo, una consulta... seteando profile enabled true + 3 propiedades para el profile, como deberiamos hacer para que al ingresar un nuevo usuario a la pagina, la base de datos cree un usuario anonimo directamente?. en el caso que destacas es para usuarios que se registran, pero como se puede manejar la persistencia en base de datos de los usuarios anonimos que maneja la aplicacion?.
gracias
-
2012年2月9日 12:50
Hola sebaherrera,
yo segui un procedimiento bien simple para manejar los usuarios anonimos, no se si sea el mejor pero me funciona:
vi que hay dos formas, una es definiendo las propiedades a las que los usuarios anonimos pueden acceder directamente en el web.config, la otra que me parece mas ordenada es definiendo una clase Perfil con todas las propiedades necesarias, y en el webconfig puedes heredar de esa clase Perfil, para que lo entierndas mejor, te dejo los links que me fueron utiles
http://odetocode.com/articles/440.aspx (este enlace fue el mas util)
http://www.4guysfromrolla.com/articles/120705-1.aspx
Saludos
- 已标记为答案 Eder CostaOwner 2012年10月26日 14:10

