본문 바로가기

Server/.NET

Authorize 인증된 사용자 Attribute

.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