Os Fóruns Asp.Net serão chamados de ANF, versão 2.0. Este artigo é um relato contínuo dos coeficientes. Ele apenas registra o trabalho de hoje e não possui conteúdo técnico.
O sistema existente já possui seu próprio conjunto de sistemas de usuários, que precisam ser conectados à ANF. É necessário que quando os usuários do sistema existente se registrem, façam login e alterem as senhas, elas sejam refletidas na ANF adequadamente. As alterações do usuário ANF não são necessárias para afetar os sistemas existentes, apenas a sincronização unidirecional.
Encontre uma maneira simples de concluir a integração tocando no mínimo possível de código existente. Eu olhei para o plano de integração CnForums de Baoyu com o sistema existente antes e finalmente decidi ser preguiçoso e anexar as informações relacionadas ao usuário e o tipo de operação ao URL após as ações acima do sistema existente e passá-lo para uma nova página para processar o operações relacionadas na ANF.
Esta nova página é chamada de bridge.aspx por enquanto. Claro, ela deve ser construída em um projeto ANF e todos os itens de uso devem ser utilizados. Ela é responsável por receber o nome de usuário, senha e outras informações e então realizar a ANF correspondente. operações.
O registro
é muito simples. Meu nome de usuário e senha são atributos auto-empacotados. Eu obtenho informações de Request. Se não tivermos um Email em nosso sistema, basta adicionar um. Em seguida, precisamos definir AccountStatus como Pass e IsAnonymous como. desligar. O parâmetro bool em Users.Create representa se devo enviar um e-mail indicando o registro bem-sucedido ao usuário. É claro que desliguei se não houvesse e-mail.
Observe que estou detectando erros em todos os lugares sem retorná-los.
Registro público vazio ()
{
tentar
{
Usuário usuário = new Usuário();
usuário.Nome de usuário = Nome de usuário;
usuário.Senha = Senha;
user.Email = " [email protected] ";
user.AccountStatus = UserAccountStatus.Aprovado;
usuário.IsAnonymous = falso;
Usuários.Create(usuário, falso);
}
pegar
{
}
}
O login
é basicamente copiado e colado. Preste atenção ao setcookie no final, que é a chave para o login síncrono.
Login público vazio()
{
tentar
{
Usuário userToLogin = novo Usuário();
userToLogin.Username = Nome de usuário;
userToLogin.Password = Senha
LoginUserStatus loginStatus = Users.ValidUser(userToLogin
if (loginStatus == LoginUserStatus.Success);
{
se (!Globals.GetSiteSettings().AllowLogin)
{
bool permitido = falso;
int userid = Users.FindUserByUsername(userToLogin.Username).UserID;
=
Roles.GetRoles(userid);
{
if (role.Name == "Administradores do site" || role.Name == "Administradores globais")
{
permitido = verdadeiro;
quebrar;
}
}
se (! permitido)
{
retornar;
}
}
set_Cookie(userToLogin.Nome de usuário, "1");
}
}
pegar
{
}
}
de alteração da senha
é baseada no login já ocorrido. Se sua suposição não for assim, você precisará adicionar seu próprio julgamento.
public void Alterar senha()
{
tentar
{
ForumContext forumContext = ForumContext.Current;
Usuário usuário = forumContext.User;
if (usuário! = nulo)
{
user.ChangePassword(Senha,NovaSenha);
}
}
pegar
{
}
}
Definir cookie
public void set_Cookie(string Nome de usuário, string Selet_item)
{
if(Selet_item == "0")
{
FormsAuthentication.SetAuthCookie(Nome de usuário,falso);
}
outro
{
ForumContext forumContext = ForumContext.Current;
FormsAuthentication.SetAuthCookie(Nome de usuário,verdadeiro);
forumContext.Context.Response.Cookies[FormsAuthentication.FormsCookieName].Expires=DateTime.
_Now.AddDays(System.Convert.ToInt32(Selet_item));
}
}
Finalmente, após registrar, fazer login e modificar o sistema existente, a página Response.Redirect ficará ok. Se você não gostar de Redirect, Server.Transfer ou xmlhttp servirão. Outro ponto importante é que a string que você transmite deve ser criptografada, caso contrário não poderá ser escrita... ※¥※×%※×, se ainda não for seguro, use o IP para determinar quem pode acessar esta página!