Asp.Net Forums se denominará en adelante ANF, versión 2.0. Este artículo es una cuenta corriente de los coeficientes. Simplemente registra el trabajo de hoy y no tiene contenido técnico.
El sistema existente ya tiene su propio conjunto de sistemas de usuario, que deben conectarse a ANF. Se requiere que cuando los usuarios del sistema existente se registren, inicien sesión y cambien sus contraseñas, se reflejen en ANF en consecuencia. No es necesario que los cambios de usuario de ANF afecten los sistemas existentes, solo la sincronización unidireccional.
Encuentre una forma sencilla de completar la integración tocando la menor cantidad posible de código existente. Miré el plan de integración de CnForums de Baoyu con el sistema existente antes y finalmente decidí ser vago y agregar la información relacionada con el usuario y el tipo de operación a la URL después de las acciones anteriores del sistema existente y pasarla a una nueva página para procesar el operaciones relacionadas en el ANF.
Esta nueva página se llama bridge.aspx por el momento. Por supuesto, debe construirse en un proyecto ANF y deben usarse todos los elementos utilizados. Es responsable de recibir el nombre de usuario, la contraseña y otra información y luego realizar el ANF correspondiente. operaciones.
El registro
es muy simple. Mi nombre de usuario y contraseña son atributos autoempaquetados. Obtengo información de Solicitud. Si no tenemos un correo electrónico en nuestro sistema, simplemente agregamos uno. apagar. El parámetro bool en Users.Create representa si se debe enviar un correo electrónico indicando el registro exitoso al usuario. Por supuesto, lo desactivé si no había ningún correo electrónico.
Tenga en cuenta que detecto errores en todas partes sin devolverlos. No es necesario que haga esto.
Registro público vacío()
{
intentar
{
Usuario usuario = nuevo Usuario();
usuario.Nombre de usuario = Nombre de usuario;
usuario.Contraseña = Contraseña;
usuario.Email = " Anó[email protected] ";
usuario.AccountStatus = UserAccountStatus.Aprobado;
usuario.IsAnonymous = falso;
Usuarios.Crear (usuario, falso);
}
atrapar
{
}
}
El inicio de sesión
se copia y pega básicamente. Preste atención al setcookie al final, que es la clave para el inicio de sesión sincrónico.
Inicio de sesión público vacío()
{
intentar
{
Usuario userToLogin = nuevo Usuario();
userToLogin.Username = Nombre de usuario;
userToLogin.Password = Contraseña;
LoginUserStatus loginStatus = Users.ValidUser(userToLogin);
si (loginStatus == LoginUserStatus.Success)
{
si (!Globals.GetSiteSettings().AllowLogin)
{
bool permitido = falso;
int ID de usuario = Users.FindUserByUsername(userToLogin.Username).ID de usuario;
ArrayList roles = Roles.GetRoles(userid);
foreach (rol en roles)
{
if (role.Name == "Administradores del sitio" || role.Name == "Administradores globales")
{
permitido = verdadero;
romper;
}
}
si (!permitido)
{
devolver;
}
}
set_Cookie(userToLogin.Nombre de usuario, "1");
}
}
atrapar
{
}
}
de cambiar la contraseña
se basa en el inicio de sesión que ya se realizó. Si su suposición no es así, debe agregar su propio criterio.
cambio de contraseña público vacío ()
{
intentar
{
ForumContext forumContext = ForumContext.Actual;
Usuario usuario = forumContext.User;
si (usuario! = nulo)
{
usuario.CambiarContraseña(Contraseña, NuevaContraseña);
}
}
atrapar
{
}
}
Establecer cookie
public void set_Cookie(cadena Nombre de usuario, cadena Selet_item)
{
si(Selet_item == "0")
{
FormsAuthentication.SetAuthCookie(Nombre de usuario,falso);
}
demás
{
ForumContext forumContext = ForumContext.Actual;
FormsAuthentication.SetAuthCookie (nombre de usuario, verdadero);
forumContext.Context.Response.Cookies[FormsAuthentication.FormsCookieName].Expires=FechaHora.
_Now.AddDays(System.Convert.ToInt32(Selet_item));
}
}
Finalmente, después de registrarse, iniciar sesión y modificar el sistema existente, la página Response.Redirect estará bien. Si no le gusta Redirect, Server.Transfer o xmlhttp será suficiente. Otro punto importante es que la cadena que transmites debe estar cifrada, de lo contrario no se puede escribir... ※¥※×%※×, si aún no es seguro, ¡usa IP para determinar quién puede acceder a esta página!