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 ()
패스워드 리셋 토큰에서 사용자 ID를 반환합니다.
InitializeDatabaseConnection() 사용자 정보를 포함한 데이터베이스에 연결하여 멤버십 시스템을 초기화합니다.
IsAccountLockedOut() 지정된 멤버십 계정이 패스워드 시도 실패 횟수가 많아而被 락크아웃 되었는지 나타냅니다.
IsConfirmed() 사용자가 확인된지 여부를 나타내는 값을 반환합니다.
IsCurrentUser() 로그인된 사용자의 사용자 이름이 지정된 사용자 이름과 일치하는지 나타내는 값을 반환합니다.
Login() 사용자를 로그인합니다.
Logout() 사용자를 로그아웃합니다.
RequireAuthenticatedUser() 사용자가 인증되지 않았다면 HTTP 상태를 401(비인증)으로 설정하십시오.
RequireRoles() 현재 사용자가 지정된 역할에 속하지 않으면 HTTP 상태 코드를 401로 설정하십시오.
RequireUser() 현재 사용자가 지정된 사용자가 아니라면 HTTP 상태를 401로 설정하십시오.
ResetPassword() 패스워드 리셋 토큰을 사용하여 패스워드를 재설정합니다.
UserExists() 사용자가 존재하는지 확인합니다.

기술 데이터

이름
Class WebMatrix.WebData.WebSecurity
Namespace WebMatrix.WebData
Assembly WebMatrix.WebData.dll

WebSecurity 데이터베이스 초기화

WebSecurity 객체를 사용하기 전에 WebSecurity 데이터베이스를 생성하거나 초기화해야 합니다.

web 애플리케이션 디렉토리에서 _AppStart.cshtml 페이지를 생성하거나 편집하세요.

이 파일에 다음 코드를 입력하세요:

_AppStart.cshtml

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

웹사이트가 각 번启动될 때마다 위의 코드가 실행됩니다. 이 코드는 WebSecurity 데이터베이스를 초기화합니다.

"Users"는 WebSecurity 데이터베이스의 이름입니다. (Users.sdf)

"UserProfile"는 사용자 구성 정보를 포함한 데이터베이스 테이블의 이름입니다.

"UserId"은 사용자 ID를 포함하는 열의 이름(primäres Schlüssel)입니다.

"Email"은 사용자 이름을 포함하는 열 이름입니다.

마지막 매개변수 true는 논리 값을 나타내며, 사용자 프로필 테이블과 멤버십 테이블(그들이 존재하지 않는 경우)을 생성할지 여부를 나타냅니다.

ヒント: true는 데이터베이스 테이블이 자동으로 생성된다는 것을 나타내지만, 데이터베이스 자체는 자동으로 생성되지 않습니다. 존재해야 합니다.

WebSecurity 데이터베이스

UserProfile 테이블의 각 레코드는 사용자를 대표하며, 사용자 ID(primäres Schlüssel)와 사용자 이름(email)이 포함되어 있습니다:

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를 통해 데이터베이스를 열고 각 테이블을 확인하십시오.

간단한 멤버십 설정

당신의 사이트가 ASP.NET Web Pages SimpleMembership 시스템을 사용하지 않도록 설정되지 않았다면, WebSecurity 객체를 사용할 때 오류가 발생할 수 있습니다.

호스트 제공자의 설정이 당신의 로컬 서버와 다를 경우, 오류가 발생할 수 있습니다. 이 문제를 해결하기 위해, 사이트의 Web.config 파일에 다음 요소를 추가하십시오:

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