ASP.NET Web Pages - วัตถุ WebSecurity

รายละเอียด

วัตถุ WebSecurity ให้การสำหรับ ASP.NET Web Pages โปรแกรมและการรับรองความปลอดภัย

ด้วยวัตถุ WebSecurity คุณสามารถสร้างบัญชีผู้ใช้ ล็อกอิน ล็อกออก รีเซ็ทหรือเปลี่ยนรหัสผ่าน และอื่นๆ

เอกสารอ้างอิงวัตถุ WebSecurity - คุณสมบัติ

คุณสมบัติ รายละเอียด
CurrentUserId กลับค่า ID ผู้ใช้ปัจจุบัน
CurrentUserName กลับค่าชื่อผู้ใช้ปัจจุบัน
HasUserId กลับค่าที่บอกว่าผู้ใช้ปัจจุบันมี ID หรือไม่ ถ้ามี กลับค่า true
IsAuthenticated เข้าสู่ระบบสถานะปัจจุบันของผู้ใช้

เอกสารอ้างอิงวัตถุ WebSecurity - วิธี

คุณสมบัติ รายละเอียด
ChangePassword() เปลี่ยนรหัสผ่านของผู้ใช้
ConfirmAccount() ยืนยันว่าบัญชีมีผลใช้งานและจัดการให้บัญชีเปิดใช้งาน
CreateAccount() สร้างบัญชีผู้ใช้ใหม่
CreateUserAndAccount() สร้างบัญชีผู้ใช้ใหม่
GeneratePasswordResetToken() สร้างโทเคนการเปลี่ยนรหัสผ่านที่สามารถส่งทางอีเมลไปยังผู้ใช้
GetCreateDate() กลับค่าวันและเวลาที่สร้างบัญชีสมาชิกที่กำหนด
GetPasswordChangeDate() กลับค่าวันและเวลาที่เปลี่ยนรหัสผ่านสมาชิกที่กำหนดล่าสุด
GetPasswordFailures
SinceLastSuccess()
กลับค่าจำนวนครั้งที่ใส่รหัสผ่านผิดตั้งแต่การเข้าสู่ระบบหรือสร้างบัญชีสมาชิกเรียบร้อย
GetUserId() กลับค่า ID ผู้ใช้โดยอ้างอิงชื่อผู้ใช้ที่กำหนด
GetUserIdFrom
PasswordResetToken ()
กลับค่า User ID จากตั๋วรีเซ็ทรหัสผ่าน。
InitializeDatabaseConnection() ตั้งค่าระบบสมาชิกด้วยการเชื่อมต่อกับฐานข้อมูลที่มีข้อมูลผู้ใช้。
IsAccountLockedOut() บอกว่าบัญชีสมาชิกที่ระบุนี้ถูกล็อกออกเนื่องจากความพยายามรหัสผ่านที่ผิดมากเกินไป。
IsConfirmed() กลับค่าที่บอกว่าผู้ใช้ได้รับการยืนยันหรือไม่。
IsCurrentUser() กลับค่าที่บอกว่าชื่อผู้ใช้ที่ลงชื่อเข้าระบบในตอนนี้เป็นชื่อผู้ใช้ที่ระบุหรือไม่。
Login() ลงชื่อผู้ใช้เข้าระบบ。
Logout() ลบการลงชื่อออกของผู้ใช้。
RequireAuthenticatedUser() ถ้าผู้ใช้ไม่ได้รับการรับรอง โปรดตั้งค่าสถานะ HTTP ให้เป็น 401 (Unauthorized)。
RequireRoles() ถ้าผู้ใช้ปัจจุบันไม่เป็นสมาชิกของบทบาทที่ระบุ โปรดตั้งค่ารหัสสถานะ HTTP ให้เป็น 401。
RequireUser() ถ้าผู้ใช้ปัจจุบันไม่ใช่ผู้ใช้ที่ระบุ โปรดตั้งค่าสถานะ HTTP ให้เป็น 401。
ResetPassword() ปรับแต่งรหัสผ่านด้วยการใช้ตั๋วรีเซ็ทรหัสผ่าน。
UserExists() ตรวจสอบว่าผู้ใช้คงอยู่หรือไม่。

Technical Data

Name Value
Class WebMatrix.WebData.WebSecurity
Namespace WebMatrix.WebData
Assembly WebMatrix.WebData.dll

ตั้งค่าฐานข้อมูล WebSecurity

ก่อนที่จะใช้โอปเจ็กต์ WebSecurity ต้องสร้างหรือตั้งค่าฐานข้อมูล WebSecurity。

สร้างหรือแก้ไขหน้า _AppStart.cshtml ในไดเรกทอรี web มาตรฐาน。

เขียนรหัสดังนี้ลงในไฟล์ _AppStart.cshtml

_AppStart.cshtml

@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", 
true);
}

เว็บไซต์จะปฏิบัติการรหัสที่ระบุดังกล่าวในแต่ละครั้งที่เว็บไซต์เริ่มทำงาน。มันจะตั้งค่าฐานข้อมูล WebSecurity。

"Users" คือชื่อฐานข้อมูล WebSecurity (Users.sdf)

"UserProfile" คือชื่อของตารางฐานข้อมูลที่มีข้อมูลการตั้งค่าผู้ใช้。

"UserId" คือชื่อคอลัมน์ที่มี ID ผู้ใช้ (หลักฐาน)

"Email" คือชื่อคอลัมน์ที่มีชื่อผู้ใช้

ตัวเลขที่สุดท้าย true คือค่าทางทฤษฎีที่ชี้ว่าควรสร้างตารางข้อมูลโปรไฟล์ผู้ใช้และตารางสมาชิก (ถ้ามันไม่มีอยู่) หรือไม่ false

คำแนะนำ: ถึงแม้ว่า true จะชี้ว่าจะทำการสร้างตารางฐานข้อมูลอัตโนมัติ แต่ฐานข้อมูลตัวจริงไม่ได้ถูกสร้างอัตโนมัติ มันต้องมีอยู่

ฐานข้อมูล WebSecurity

บทบาทในตาราง UserProfile แสดงถึงผู้ใช้แต่ละคน ซึ่งรวมถึง ID ผู้ใช้ (หลักฐาน) และชื่อผู้ใช้ (อีเมล):

UserId อีเมล
1 john@johnson.net
2 peter@peterson.com
3 lars@larson.eut

ตาราง Membership มีข้อมูลสมาชิกเพื่อตัวอย่าง อย่างเช่น ว่าใครที่สร้างผู้ใช้และเมื่อสมาชิกถูกยืนยัน (และเมื่อ)

เช่นนี้ (บทบาทบางอย่างไม่ได้ระบุ):

UserId วันที่สร้าง ยืนยัน
ตะโกน
หรือไม่
ยืนยัน
สุดท้าย
รหัสผ่านผิด
รหัสผ่าน เปลี่ยนรหัสผ่าน
1 12.04.2012 16:12:17 NULL True NULL AFNQhWfy.... 12.04.2012 16:12:17

หมายเหตุ:ถ้าคุณต้องการเห็นบทบาททั้งหมดและเนื้อหาทั้งหมด โปรดเปิดฐานข้อมูลด้วย WebMatrix และตรวจสอบบทบาททุกตาราง

การตั้งค่าสมาชิกงานที่เรียบง่าย

ถ้าเว็บไซต์ของคุณยังไม่ถูกตั้งค่าเพื่อใช้ระบบสมาชิกที่เรียกว่า SimpleMembership ของ ASP.NET Web Pages อาจจะเกิดข้อผิดพลาดเมื่อใช้ WebSecurity ออบเจก

ถ้าการตั้งค่าของผู้ให้บริการเซิร์ฟเวอร์ต่างจากเซิร์ฟเวอร์ท้องถิ่นของคุณ จะเกิดข้อผิดพลาด ในการแก้ปัญหานี้ โปรดเพิ่มองค์ประกอบต่อไปนี้ในไฟล์ Web.config ของเว็บไซต์ของคุณ:

<appSettings> 
<add key="enableSimpleMembership" value="true" /> 
</appSettings>