ASP.NET WebPages 응용 프로그램의 보안 및 인증은 WebSecurity 개체를 통해 보장됩니다. 이 섹션에서는 WebSecurity 개체의 속성, 메서드 및 관련 용도를 소개합니다.
WebSecurity 개체는 ASP.NET 웹 페이지 응용 프로그램에 대한 보안 및 인증을 제공합니다.
WebSecurity 개체를 통해 사용자 계정 생성, 사용자 로그인 및 로그아웃, 비밀번호 재설정 또는 변경 및 기타 다양한 보안 관련 기능을 수행할 수 있습니다.
재산 | 설명하다 |
---|---|
현재사용자ID | 현재 로그인된 사용자의 ID를 가져옵니다. |
현재 사용자 이름 | 현재 로그인된 사용자의 이름을 가져옵니다. |
사용자 ID 있음 | 현재 사용자 ID가 있으면 true를 반환합니다. |
인증됨 | 현재 사용자가 로그인되어 있으면 true를 반환합니다. |
방법 | 설명하다 |
---|---|
비밀번호 변경() | 지정된 사용자의 비밀번호를 변경합니다. |
계정 확인() | 계정 확인 토큰을 사용하여 계정을 확인하세요. |
계정 생성() | 새 사용자 계정을 만듭니다. |
CreateUserAndAccount() | 새 사용자 계정을 만듭니다. |
비밀번호 재설정토큰() 생성 | 사용자가 비밀번호를 재설정할 수 있도록 이메일로 사용자에게 보낼 수 있는 비밀번호 재설정 토큰을 생성합니다. |
GetCreateDate() | 지정된 멤버의 생성 시간을 가져옵니다. |
비밀번호변경날짜 가져오기() | 비밀번호가 변경된 날짜와 시간을 확인하세요. |
GetUserId() | 사용자 이름을 기준으로 사용자 ID를 가져옵니다. |
초기화데이터베이스연결() | WebSecurity 시스템(데이터베이스)을 초기화합니다. |
확인됨() | 사용자가 확인되었는지 확인하세요. 확인되면 true를 반환합니다. (예를 들어 이메일을 통해 확인이 가능합니다.) |
현재사용자() | 현재 사용자의 이름이 지정된 사용자 이름과 일치하는지 확인합니다. 일치하는 것이 있으면 true를 반환합니다. |
로그인() | 인증 토큰을 설정하고 사용자를 로그인합니다. |
로그아웃() | 인증 토큰을 제거하고 사용자를 로그아웃합니다. |
RequireAuthenticatedUser() | 사용자가 인증되지 않은 경우 HTTP 상태를 401(인증되지 않음)로 설정합니다. |
역할 필요() | 현재 사용자가 지정된 역할의 구성원이 아닌 경우 HTTP 상태를 401(권한 없음)로 설정합니다. |
요구사용자() | 현재 사용자가 지정된 사용자 이름을 가진 사용자가 아닌 경우 HTTP 상태를 401(인증되지 않음)로 설정합니다. |
비밀번호 재설정() | 비밀번호 재설정 토큰이 유효하면 사용자 비밀번호를 새 비밀번호로 변경하세요. |
사용자존재() | 지정된 사용자가 존재하는지 확인합니다. |
이름 | 값 |
---|---|
수업 | WebMatrix.WebData.WebSecurity |
네임스페이스 | 웹매트릭스.웹데이터 |
집회 | WebMatrix.WebData.dll |
코드에서 WebSecurity 개체를 사용하려면 먼저 WebSecurity 데이터베이스를 생성하거나 초기화해야 합니다.
웹 루트 디렉터리에서 _AppStart.cshtml 이라는 페이지를 만듭니다(또는 페이지가 이미 있는 경우 직접 편집).
다음 코드를 파일에 복사합니다.
@{ WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", true) }
위 코드는 웹사이트(애플리케이션)이 시작될 때마다 실행됩니다. WebSecurity 데이터베이스를 초기화합니다.
"Users"는 WebSecurity 데이터베이스(Users.sdf)의 이름입니다.
"UserProfile" 은 사용자 프로필 정보가 포함된 데이터베이스 테이블의 이름입니다.
"UserId" 는 사용자 ID(기본 키)가 포함된 열의 이름입니다.
"이메일" 은 사용자 이름이 포함된 열의 이름입니다.
마지막 매개변수 true 는 부울 값으로, 사용자 구성 테이블과 멤버십 테이블이 존재하지 않는 경우 테이블이 자동으로 생성됨을 나타냅니다. 테이블을 자동으로 생성하지 않으려면 매개변수를 false 로 설정해야 합니다.
true는 데이터베이스 테이블이 자동으로 생성됨을 의미하지만 데이터베이스가 자동으로 생성되지는 않습니다. 따라서 데이터베이스가 존재해야 합니다. |
UserProfile 테이블은 각 사용자, 사용자 ID(기본 키) 및 사용자 이름(이메일)에 대한 레코드를 생성하고 저장합니다.
사용자 ID | 이메일 |
---|---|
1 | [email protected] |
2 | [email protected] |
3 | [email protected] |
Membership 테이블에는 사용자가 생성된 날짜, 회원의 인증 여부, 회원이 인증된 날짜 등의 회원 정보가 포함되어 있습니다.
세부정보는 다음과 같습니다(일부 열은 표시되지 않음).
사용자 ID | 생성 날짜 | 확인 토큰 | 확인됨 | 마지막 비밀번호 실패 | 비밀번호 | 비밀번호 변경 |
---|---|---|---|---|---|---|
1 | 2012년 4월 12일 16:12:17 | NULL | 진실 | NULL | AFNQhWfy.... | 2012년 4월 12일 16:12:17 |
참고: 모든 열과 내용을 보려면 데이터베이스를 열고 내부의 각 테이블을 살펴보세요.
WebSecurity 개체를 사용할 때 사이트가 ASP.NET 웹 페이지 멤버십 시스템 SimpleMembership 을 사용하도록 구성되지 않은 경우 오류가 보고될 수 있습니다.
호스팅 공급자의 서버가 로컬 서버와 다르게 구성된 경우에도 오류가 발생할 수 있습니다. 이 문제를 해결하려면 웹 사이트의 Web.config 파일에 다음 요소를 추가하십시오.
<appSettings> <add key="enableSimpleMembership" value="true" /> </appSettings>
위는 WebSecurity 객체에 대한 소개입니다.