บทความนี้จะเรียกว่า ANF เวอร์ชัน 2.0 เป็นเพียงบัญชีของค่าสัมประสิทธิ์เท่านั้น
ระบบที่มีอยู่มีชุดระบบผู้ใช้ของตัวเองอยู่แล้ว ซึ่งจำเป็นต้องเชื่อมต่อกับ ANF โดยกำหนดให้เมื่อผู้ใช้ระบบที่มีอยู่ลงทะเบียน เข้าสู่ระบบ และเปลี่ยนรหัสผ่าน พวกเขาจะต้องปรากฏใน ANF ตามนั้น การเปลี่ยนแปลงผู้ใช้ ANF ไม่จำเป็นต้องส่งผลต่อระบบที่มีอยู่ มีเพียงการซิงโครไนซ์ทางเดียวเท่านั้น
ค้นหาวิธีง่ายๆ ในการบูรณาการให้เสร็จสมบูรณ์โดยการใช้โค้ดที่มีอยู่ให้น้อยที่สุดเท่าที่จะทำได้ ฉันดูแผนการบูรณาการ CnForums ของ Baoyu กับระบบที่มีอยู่ก่อนหน้านี้ และในที่สุดก็ตัดสินใจที่จะขี้เกียจและผนวกข้อมูลที่เกี่ยวข้องกับผู้ใช้และประเภทการดำเนินการเข้ากับ url หลังจากการกระทำข้างต้นของระบบที่มีอยู่ และส่งผ่านไปยังหน้าใหม่เพื่อประมวลผล การดำเนินงานที่เกี่ยวข้องใน ANF
ในขณะนี้เพจใหม่นี้เรียกว่า Bridge.aspx แน่นอนว่าจะต้องสร้างไว้ในโปรเจ็กต์ ANF และต้องใช้รายการใช้งานทั้งหมด โดยมีหน้าที่รับชื่อผู้ใช้ รหัสผ่าน และข้อมูลอื่นๆ จากนั้นจึงดำเนินการ ANF ที่เกี่ยวข้อง การดำเนินงาน
การลงทะเบียน
นั้นง่ายมาก ชื่อผู้ใช้และรหัสผ่านของฉันเป็นแอตทริบิวต์ที่บรรจุด้วยตนเอง ฉันได้รับข้อมูลจาก Request หากไม่มีอีเมลในระบบของเรา เราเพียงเพิ่มอีเมลเข้าไป ปิด พารามิเตอร์ bool ใน Users.Create แสดงว่าจะต้องส่งอีเมลแจ้งการลงทะเบียนให้กับผู้ใช้สำเร็จหรือไม่ แน่นอนว่าฉันปิดมันหากไม่มีอีเมล
โปรดทราบว่าฉันพบข้อผิดพลาดทุกที่โดยไม่ต้องส่งคืน คุณไม่จำเป็นต้องทำเช่นนี้
ทะเบียนโมฆะสาธารณะ()
-
พยายาม
-
ผู้ใช้ ผู้ใช้ = ผู้ใช้ใหม่ ();
user.Username = ชื่อผู้ใช้;
user.Password = รหัสผ่าน;
user.Email = " [email protected] ";
user.AccountStatus = UserAccountStatus.Approved;
ผู้ใช้ IsAnonymous = false;
Users.Create(ผู้ใช้, เท็จ);
-
จับ
-
-
}
การเข้าสู่ระบบ
จะถูกคัดลอกและวาง ให้ความสนใจกับ setcookie ในตอนท้ายซึ่งเป็นกุญแจสำคัญในการเข้าสู่ระบบแบบซิงโครนัส
การเข้าสู่ระบบโมฆะสาธารณะ()
-
พยายาม
-
ผู้ใช้ userToLogin = ผู้ใช้ใหม่ ();
userToLogin.Username = ชื่อผู้ใช้;
userToLogin.Password = รหัสผ่าน;
LoginUserStatus loginStatus = Users.ValidUser(userToLogin);
ถ้า (loginStatus == LoginUserStatus.Success)
-
ถ้า (!Globals.GetSiteSettings().AllowLogin)
-
อนุญาตบูล = false;
int userid = Users.FindUserByUsername (userToLogin.Username).UserID;
ArrayList Roles = Roles.GetRoles(userid);
foreach (บทบาทบทบาทในบทบาท)
-
if (role.Name == "ผู้ดูแลไซต์" || Role.Name == "ผู้ดูแลระบบส่วนกลาง")
-
อนุญาต = จริง;
หยุดพัก;
-
-
ถ้า (!อนุญาต)
-
กลับ;
-
-
set_Cookie(userToLogin.ชื่อผู้ใช้, "1");
-
-
จับ
-
-
}
ในการเปลี่ยนรหัสผ่าน
นั้นขึ้นอยู่กับการเข้าสู่ระบบที่เกิดขึ้นแล้ว หากสมมติฐานของคุณไม่เป็นเช่นนั้น คุณต้องเพิ่มวิจารณญาณของคุณเอง
โมฆะสาธารณะ ChangePassword()
-
พยายาม
-
ForumContext forumContext = ForumContext.Current;
ผู้ใช้ ผู้ใช้ = forumContext.User;
ถ้า (ผู้ใช้ != null)
-
user.ChangePassword (รหัสผ่าน, รหัสผ่านใหม่);
-
-
จับ
-
-
}
ตั้งค่าคุกกี้ โมฆะ
สาธารณะ set_Cookie (สตริงชื่อผู้ใช้, สตริง Selet_item)
-
ถ้า(Selet_item == "0")
-
FormsAuthentication.SetAuthCookie (ชื่อผู้ใช้, เท็จ);
-
อื่น
-
ForumContext forumContext = ForumContext.Current;
FormsAuthentication.SetAuthCookie (ชื่อผู้ใช้ จริง);
forumContext.Context.Response.Cookies[FormsAuthentication.FormsCookieName].Expires=DateTime
_Now.AddDays(System.Convert.ToInt32(Selet_item));
-
}
สุดท้ายนี้ หลังจากลงทะเบียน เข้าสู่ระบบ และแก้ไขระบบที่มีอยู่ หน้า Response.Redirect จะใช้ได้ หากคุณไม่ชอบ Redirect, Server.Transfer หรือ xmlhttp จะทำก็ได้ ขึ้นอยู่กับการแสดงผลที่คุณต้องการ ประเด็นสำคัญอีกประการหนึ่งคือสตริงที่คุณส่งจะต้องถูกเข้ารหัส ไม่เช่นนั้นจะไม่สามารถเขียนได้... ※¥※×%※× หากยังไม่ปลอดภัย ให้ใช้ IP เพื่อกำหนดว่าใครสามารถเข้าถึงหน้านี้ได้บ้าง!