티스토리 뷰
ASP.NET 인증 (Web.config)
1. 무인증
2. Windows 인증
1) web.config : <authentication mode="Windows" />
2) IIS -> 해당 웹사이트 속성 -> 디렉터리 보안 -> 인증 및 액세스 제어 : 편집 -> 익명 액세스 가능 : 체크 제거
3. Form 인증 : 인증쿠키를 client에 심어서 인증을 확인.***
1) web.config : 응용 프로그램의 인증 정책을 설정
<authentication mode="Forms">
<form s name=".AUTHCOOKIE" loginUrl="Login.aspx" protection="All" timeout="30"/>
</authentication>
- name : 인증 쿠키명
- loginUrl : 인증 안되면 이동되는 페이지
- protection : 암호화(All, SHA1, MD5)
- timeout 은 기본 30분
- 기존에 페이지 마다 로그인 유무를 확인하는 구문을 넣어 주었는데....loginUrl로 인해서...그런 노가다는 안해도 된다...^^
2) web.config : 응용 프로그램의 권한 부여 정책 설정
- 적은 범위의 user표현이 먼저 와야 한다. 위에는 모든 user 허용
<authorization>
<allow users="*" />
<deny users="test"/>
</authorization>
- 위에서 test라는 user를 제외 시킬려면....
<authorization>
<allow users="*" />
<deny users="test"/>
</authorization>
- 익명 사용자 허용 안함
<authorization>
<deny users="?"/>
</authorization>
3) 인증후 쿠키 심기
- FormsAuthentication.SetAuthCookie(this.TextBox1.Text,false); : 메모리 쿠키
- FormsAuthentication.SetAuthCookie(this.TextBox1.Text,true); : hard 쿠키
4) 인증후 전 페이지로 이동하기
- Response.Redirect(FormsAuthentication.GetRedirectUrl(this.TextBox1.Text,false));
- http://localhost/Soo/Login.aspx?ReturnUrl=%2fSoo%2fWebForm9.aspx
=> 인증이 안된 상태에서 WebForm9.aspx 페이지로 접근을 해서..
=> web.config : 응용 프로그램의 인증 정책을 설정 에서 loginUrl에서 정한 Login.aspx로 강제로 이동되었다.
=> 강제로 이동될때 처음에 접근을 했던 WebForm9.aspx페이지의 경로도 ReturnUrl=/Soo/WebForm9.aspx 같이 넘어왔다.
=> 이 경로를 가지로 인증후 전 페이지로 이동한다.(GetRedirectUrl)
5) 인증후 쿠키심기와 전 페이지로 이동하기를 한번에 하기 (3 + 4)
- FormsAuthentication.RedirectFromLoginPage(id,false);
6) web.config를 이용해서 간단한 계정 관리하기
- web.config
<authentication mode="Forms">
<form s name=".AUTHCOOKIE" loginUrl="Login.aspx" protection="All" timeout="30">
<credentials passwordFormat="Clear"> --> clear : password 암호화 안함. -->SHA1--> MD5
<user name="test" password="111"/>
<user name="admin" password="111"/>
<user name="hong" password="111"/>
</credentials>
</forms>
</authentication>
- passwordFormat 종류
1.Clear : 암호화 하지 않음.
2. SHA1
3. MD5
==> 암호화 확인 방법 : FormsAuthentication.HashPasswordForStoringInConfigFile(password,"SHA1");
- 코드비하인드 페이지
if (FormsAuthentication.Authenticate(this.TextBox1.Text,this.TextBox2.Text)) --> web.config에 있는 user확인하는 구문.
{
FormsAuthentication.RedirectFromLoginPage(this.TextBox1.Text,false);
this.Label1.Text="로그인 성공";
}
else
{
this.Label1.Text="로그인 실패";
}
- FormsAuthentication.Authenticate(id,pwd) : 비교후 bool값 반환
7) 폴더, 페이지 단위로 권한 부여하기
- web.config 페이지에서 <loaction path="폴더명 or 페이지명">로 권한 설정
<configuration>
<system.web>
</system.web>
<location path="admin"> ==> admin 폴더에 권한 설정
<system.web>
<authorization>
<allow users="admin"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="member"> ==> member 폴더에 권한 설정
<system.web>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="member.aspx"> ==> member.aspx 페이지에 권한 설정
<system.web>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
</system.web>
</location>
</configuration>
8) 인증 쿠키 삭제
System.Web.Security.FormsAuthentication.SignOut(); //인증쿠키 삭제
9) 사용자 지정 오류 메시지
<customErrors mode="On" defaultRedirect="ErrorEx.aspx"> ==> 기본적으로 에러 발생하면 defaultRedirect에서 지정한 페이지로 이동한다.
<error statusCode="404" redirect="NotFound.aspx"/> ==> 특정 에러(statusCode) 발생하면 redirect에서 지정한 페이지로 이동한다.
</customErrors>
10) pages
- <configuration>
<system.web>
<pages>
<pages
buffer="true|false" : URL 리소스가 응답 버퍼링을 사용할지 여부를 지정합니다.
- true : 응답 버퍼링이 설정되었음을 나타냅니다.
- false : 응답 버퍼링이 해제되었음을 나타냅니다.
enableSessionState="true|false|ReadOnly" : 세션 상태의 설정 여부를 지정합니다.
- true : 세션 상태가 설정되었음을 나타냅니다.
- false : 세션 상태가 해제되었음을 나타냅니다.
- ReadOnly : 응용 프로그램에서 세션 상태 변수를 읽을 수는 있으나 수정할 수 없도록 지정합니다.
enableViewState="true|false" : 뷰 상태의 설정 여부를 지정합니다.
- true : 뷰 상태가 설정되었음을 나타냅니다.
- false : 뷰 상태가 해제되었음을 나타냅니다.
enableViewStateMac="true|false"
: 페이지가 클라이언트로부터 다시 게시되면 ASP.NET이 페이지의 뷰 상태에 대해 MAC(메시지 인증 코드)를 실행할지 여부를 지정합니다.
참고 뷰 상태 MAC는 브라우저에 보내질 때 페이지의 뷰 상태가 유지되는 숨겨진 변수의 암호화된 버전입니다.
true인 경우 암호화된 뷰 상태가 클라이언트에서 변경되었는지 여부가 확인됩니다.
- true : 뷰 상태가 설정되었음을 나타냅니다.
- false : 뷰 상태가 MAC의 선택이 해제되었음을 나타냅니다. 기본값은 false입니다.
autoEventWireup="true|false" : 페이지 이벤트가 자동으로 설정될지 지정합니다.
- true : 페이지 이벤트가 자동으로 설정됨을 나타냅니다.
- false : 페이지 이벤트가 자동으로 설정되지 않음을 나타냅니다.
smartNavigation="true|false" : 스마트 탐색의 설정 여부를 지정합니다.
- true : 스마트 탐색이 설정되었음을 나타냅니다.
- false : 추적이 해제되었음을 나타냅니다. 기본값은 false입니다.
pageBaseType="typename, assembly" : aspx 페이지가 기본적으로 상속하는 코드 숨김 클래스를 지정합니다.
userControlBaseType="typename" : 사용자 정의 컨트롤이 기본적으로 상속하는 코드 숨김 클래스를 지정합니다.
validateRequest="true|False" : ASP.NET이 잠재적으로 유해한 데이터를 찾기 위해 브라우저를 통한 모든 입력 내용을 검토함을 나타냅니다.
true인 경우, 잠재적으로 유해한 값 목록에 모든 입력 데이터를 비교하여 요청 유효성 검사가 수행됩니다.
일치하는 항목이 있으면 ASP.NET은 HttpRequestValidationException 예외를 발생시킵니다.
- true : 브라우저를 통한 모든 입력 내용이 확인됨을 나타냅니다. 기본값은 true입니다.
- false : 브라우저를 통한 입력 내용이 확인되지 않음을 나타냅니다.
/>
4. PassPort 인증
- Total
- Today
- Yesterday
- georgia max
- Roibosh Vanilla
- hot 6
- 보이스차
- 러브트리프로젝트
- 안녕 바다
- Crows Zero
- 보이스티
- 아이폰 보조배터리
- IT·컴퓨터
- God of War III
- KL2200
- 아이튠즈 없이 mp3가져오기
- 아이폰 카메라어플
- 모토스톰2
- 릴리스 다이어리 - 설레어
- 아이폰 셀카
- 켄우드 정수기
- 삼성 외장하드
- 나를 기억하고 있는 너에게
- 윈터드림
- 닷넷 파일형식
- KL-2200
- 아이팟 보조배터리
- Lily's Diary
- GTO SHONAN 14DAYS
- .NET Excel
- 릴리스다이어리
- 로네펠트
- 닷넷 엑셀
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |