Asp.Net 포럼은 이후 ANF 버전 2.0으로 지칭됩니다. 이 문서는 현재의 작업을 기록할 뿐이며 기술적인 내용은 없습니다.
기존 시스템에는 이미 ANF에 연결해야 하는 자체 사용자 시스템 세트가 있습니다. 기존 시스템 사용자가 등록, 로그인 및 비밀번호 변경 시 그에 따라 ANF에 반영되어야 합니다. ANF 사용자 변경은 기존 시스템에 영향을 미칠 필요가 없으며 단방향 동기화만 필요합니다.
기존 코드를 최대한 적게 사용하면서 통합을 완료하는 간단한 방법을 찾으세요. 기존 시스템과 Baoyu의 CnForums 통합 계획을 살펴봤고, 결국 게으른 방식으로 기존 시스템의 위 작업 이후에 사용자 관련 정보와 작업 유형을 URL에 추가하고 새 페이지에 전달하여 처리하기로 결정했습니다. ANF의 관련 작업.
물론 이 새로운 페이지는 ANF 프로젝트에 구축되어야 하며, 사용자 이름, 비밀번호 및 기타 정보를 받아 해당 ANF를 수행하는 역할을 담당해야 합니다. 운영.
등록은
매우 간단합니다. 요청에서 정보를 가져오는 자체 패키지 속성입니다. 시스템에 이메일이 없으면 하나만 추가하면 됩니다. 끄다. Users.Create의 bool 매개변수는 사용자에게 성공적으로 등록되었음을 알리는 이메일을 보낼지 여부를 나타냅니다. 물론 이메일이 없으면 비활성화했습니다.
오류를 반환하지 않고도 어디서나 오류를 잡을 수 있다는 점에 유의하세요.
공공 무효 등록()
{
노력하다
{
사용자 사용자 = 새 사용자();
user.Username = 사용자 이름;
user.Password = 비밀번호;
user.Email = " [email protected] ";
user.AccountStatus = UserAccountStatus.Approved;
user.IsAnonymous = 거짓;
Users.Create(사용자, 거짓);
}
잡다
{
}
}
로그인은
기본적으로 복사 및 붙여넣기 방식으로 되어 있는데, 마지막에 동기 로그인의 핵심인 setcookie에 주의하세요.
공개 무효 로그인()
{
노력하다
{
사용자 userToLogin = 새로운 사용자();
userToLogin.Username = 사용자 이름;
userToLogin.Password = 비밀번호;
LoginUserStatus loginStatus = Users.ValidUser(userToLogin);
if (loginStatus == LoginUserStatus.Success)
{
if (!Globals.GetSiteSettings().AllowLogin)
{
bool 허용 = false;
int userid = Users.FindUserByUsername(userToLogin.Username).UserID;
ArrayList Roles = Roles.GetRoles(userid)
foreach(역할의 역할 역할)
{
if (role.Name == "사이트 관리자" || role.Name == "전역 관리자")
{
허용 = 사실;
부서지다;
}
}
만약 (!허용)
{
반품;
}
}
set_Cookie(userToLogin.Username, "1");
}
}
잡다
{
}
}
비밀번호 변경에 대한
가정은이미 발생한 로그인을 기반으로 합니다. 가정이 이와 같지 않은 경우 자체 판단을 추가해야 합니다.
공공 무효 ChangePassword()
{
노력하다
{
ForumContext forumContext = ForumContext.Current;
사용자 사용자 = forumContext.User;
if (사용자 != null)
{
user.ChangePassword(Password, NewPassword);
}
}
잡다
{
}
}
쿠키 설정
public void set_Cookie(string Username, string Selet_item)
{
if(Selet_item == "0")
{
FormsAuthentication.SetAuthCookie(사용자 이름,false);
}
또 다른
{
ForumContext forumContext = ForumContext.Current;
FormsAuthentication.SetAuthCookie(사용자 이름,true);
forumContext.Context.Response.Cookies[FormsAuthentication.FormsCookieName].Expires=DateTime.
_Now.AddDays(System.Convert.ToInt32(Selet_item));
}
}
마지막으로 등록하고 로그인하고 기존 시스템을 수정하면 Response.Redirect 페이지가 괜찮을 것입니다. Redirect가 마음에 들지 않으면 필요한 표시에 따라 Server.Transfer 또는 xmlhttp가 됩니다. 또 다른 중요한 점은 전송하는 문자열을 암호화해야 한다는 것입니다. 그렇지 않으면 쓸 수 없습니다... ※₩※×%※×, 그래도 안전하지 않다면 IP를 사용하여 이 페이지에 액세스할 수 있는 사람을 결정하세요!