.Net에는 Authorize라는 Attribute가 있다.
Attribute는 해당 Controller, 메소드위에 선언으로 실행? 된다
그 중에서 Authorize는 해당 메소드,Controller를 인증된 사용자 즉 로그인한 사용자만이 접근 가능하도록 하는것이다.
일단 Web.config에 <system.web> 내에 authentication을 만들고 mode를 Forms로 설정
1.
<system.web>
<authentication mode = "Forms"></authentication>
<system.web>
2. <authentication mode = "Forms"></authentication> 내에
forms를 만들고 loginUrl 설정하기
<authentication mode = "Forms">
<forms loginUrl = "~/Test/login" protection="All" timeout"1440" cookiesless="UseCookies" slidingExpiration="true" domain=".test.co.kr"/>
</authentication>
<authorization>
<deny users="?"/> -- 인증되지 않은 사용자 리소스 엑세스 거부, 필수 아님
</authorization>
protection : 폼 인증 티켓을 보호 하기 위해 어떤 기술이 사용 되는지 나타냄
timeout : 인증 티켓 쿠키가 만료 되는 시간을 지정, 분 단위로 하며 기본값은 30입니다.
cookiesless : 인증티켓이 쿠키, url 중 어디에 저장하는지를 나타냄
domain : 티켓이 사용될 도메인을 입력함 본인은 하위(www.test.co.kr, admin.test.co.kr, 등.. ) 모든 test.co.kr을 위해 .test.co.kr로 지정
3.
인증(로그인)처리를 하는 메소드에서
FormsAuthentication.SetAuthCookie(strAccount, true);
string userData = no_+";"+account+";"+name+";" ....
FormsAuthenticationTicket memberTicket = new FormsAuthenticationTicket(1, account, DateTime.Now, DateTime.Now.Add(FormsAuthentication.Timeout), false, userData);
//new FormsAuthenticationTicket(티켓의 버전, 티켓의 주인 즉 식별가능한 사용자, 티켓이 발행되는 날짜, 티켓이 만료되는 날짜,
브라우저 세션이 바뀌어도 계속 유지면 true 그렇지 않으면 false 입니다, 티켓에 저장될 사용자별 데이터)
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(memberTicket));
cookie.Domain = ".test.co.kr";
Response.Cookies.Add(cookie);
여기서 FormsAuthentication는 웹 응용 프로그램의 폼 인증 서비스를 관리하는 클래스이며
FormsAuthenticationTicket는 사용자 식별을 위해 폼 인증에서 사용되는 티켓의 속성 및 값에 엑세스할 수 있도록 하는 클래스입니다.
4.인증후에 엑세스 허용하는 메소드에서
[Authorize]
public ActionResult BoardList(int pageNo)
{
...
}
이렇게 상단에 Attribute를 선언으로 사용한다
'Server > .NET' 카테고리의 다른 글
Json MaxLength (0) | 2018.08.27 |
---|