게시판 본문 ASP, ASP.NET, IIS & Script - Read Only

[ASP.NET] user 권한에 관한..
작성자: toast
작성일시: 2004-06-14 10:41,  조회수: 1,116
안녕하세요~
요전에 글을 올리고
또 질문이 생겨버려서..ㅡㅡ..
user가 로그인하면 user가 가진 각 역할에 대해 쿠키에 저장하는 부분에서요..

데브피아 세미나 자료를 보다가요..
Global.ascx에서 System.Security.Principal.GenericPrincipal 를 이용한
쿠키인증티켓 만드는 것을 보았는데요..
이것을 쓰게 되는 이유에 대해서 잘 이해가 안가서요..

각 페이지가 요청될때마다 global.aspx에서
Application_AuthenticateRequest 이 이루어지고
페이지에 공통으로 들어갈 부분을 설정하게 되는 것 같습니다.

아래 소스처럼 이 부분에 GenericPrincipal 를 설정하는 것이
어떤 역할을 하는 것인지 알고 싶습니다..

쿠키 설정을 하게 되면 일정 시간이 지난후 사라지게 되서
쓰게 되는 것인지..
뭔가 ASP.NET에서 사용할 수 있는 특별한 혜택같은데 @_@..

움,그리고 만약 사용자가 소수 사용자만 쓰게 된다면
세션을 쓰는 편이 이보다 편리한 방법일까요?
브라우저에서 쿠키설정을 꺼두면 아무 소용이 없어지는 거겠죠?

처음 해보는거라 좀 헤매고 있습니다..
히움.. ^^a

protected void Application_AuthenticateRequest(Object sender, EventArgs e) {
//인증된 사용자이면
if (Request.IsAuthenticated == true) {

String[] roles;

// Create the roles cookie if it doesn't exist yet for this session.
if ((Request.Cookies["portalroles"] == null) || (Request.Cookies
["portalroles"].Value == "")) {

// Get roles from UserRoles table, and add to cookie
UsersDB user = new UsersDB();
roles = user.GetRoles(User.Identity.Name);

// Create a string to persist the roles
String roleStr = "";
foreach (String role in roles) {
roleStr += role;
roleStr += ";";
}

// 이렇게 인증티켓을 기회가 날때마다 새로 생성해줍니다.
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1, // version
Context.User.Identity.Name, // user name
DateTime.Now, // issue time
DateTime.Now.AddHours(1), // expires every hour
false, // don't persist cookie
roleStr // 사용자마다 특정 데이타는 여
기에 정장하면 유용하죠. 아래에서 이걸 다시 사용합니다.
);

// 보안상 인증티켓을 암호화 합니다.
String cookieStr = FormsAuthentication.Encrypt(ticket);

// Send the cookie to the client
Response.Cookies["portalroles"].Value = cookieStr;
Response.Cookies["portalroles"].Path = "/";
//쿠키 만료시간이 1분이니까 페이지 요구때마다 새로 인증티켓을생성하
는 결과가됩니다.
Response.Cookies["portalroles"].Expires = DateTime.Now.AddMinutes
(1);
}
else {

// 1분안에 페이지요구가 있으면 기존의 인증티켓을 그냥 사용합니다.
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt
(Context.Request.Cookies["portalroles"].Value);

//convert the string representation of the role data into a string
array
ArrayList userRoles = new ArrayList();

//인증티켓 만들때 같이 저장한 데이타를 여기서 사용하네요
foreach (String role in ticket.UserData.Split( new char[] {';'} )) {
userRoles.Add(role);
}

roles = (String[]) userRoles.ToArray(typeof(String));
}

// Add our own custom principal to the request containing the roles in
the auth ticket
Context.User = new GenericPrincipal(Context.User.Identity, roles);
}
}

IP 주소: 220.117.193.253
전체 1 건의 댓글이 존재합니다.

송원석

앗, 이 부분은 저도 아직까지 명확하게 파악하고 있지 못한 부분입니다. 조금 생각해보고 말씀을 드려야 할 것 같네요. 게다가 오후에 미팅이 잡혀 있어서 답변을 생각해 볼 약간의 시간이 필요할 것 같습니다. ^_^
2004-06-14 11:12
전체 2,095 건의 게시물, 84 페이지로 구성된 ASP, ASP.NET, IIS & Script 게시판의 68 페이지입니다.
게시물
440

re: 폴더 정보 보기 문제점

송원석

2004-07-01 5,278
439

안녕하세요~ Session.SessionID의 불법적 조작에 관한 질문.. ^^

아버

2004-06-28 3,339
438

re: 안녕하세요~ Session.SessionID의 불법적 조작에 관한 질문.. ^^

송원석

2004-06-28 3,079
437

파일규브 사용중 폴더가 안접히는 현상 ㅜ.ㅜ

김혜진

2004-06-25 3,032
436

re: 파일규브 사용중 폴더가 안접히는 현상 ㅜ.ㅜ [1]

송원석

2004-06-25 3,104
435

아으~ 이게 무슨 조화 일까요... ㅠㅜ

오마르

2004-06-23 1,042
434

re: 아으~ 이게 무슨 조화 일까요... ㅠㅜ [1]

송원석

2004-06-23 3,043
433

답변 감사드리고 또 다른 긴급 질문 입니다.

궁금이

2004-06-23 1,047
432

re: 답변 감사드리고 또 다른 긴급 질문 입니다.

송원석

2004-06-23 3,094
431

질문 드립니다

궁금이

2004-06-22 961
430

re: 질문 드립니다

송원석

2004-06-23 2,964
429

안녕하세요~~ 궁금한게 또하나있어여~ ^^ [2]

오마르

2004-06-21 1,061
428

안녕하세요~ 오늘은 ms-sql 물어볼게 있는데요.. ^-^

오마르

2004-06-17 1,029
427

re: 안녕하세요~ 오늘은 ms-sql 물어볼게 있는데요.. ^-^ [1]

송원석

2004-06-17 3,226
426

안녕하세요~~ ^^ [1]

오마르

2004-06-14 828

[ASP.NET] user 권한에 관한.. [1]

toast

2004-06-14 1,116
424

re: [ASP.NET] user 권한에 관한..

송원석

2004-06-14 3,231
423

re: [ASP.NET] user 권한에 관한..

toast

2004-06-17 1,008
422

파일큐브에서 세션에 관한 질문입니다

쪼꼬만이

2004-06-14 2,961
421

re: 파일큐브에서 세션에 관한 질문입니다

송원석

2004-06-14 2,920
420

안녕하세요~~ ^^

오마르

2004-06-11 910
419

re: 안녕하세요~~ ^^ [1]

송원석

2004-06-11 3,157
418

설계에 관한 ..(user의 권한 관리)

toast

2004-06-03 924
417

re: 설계에 관한 ..(user의 권한 관리)

송원석

2004-06-04 3,185
416

re: 설계에 관한 ..(user의 권한 관리)

toast

2004-06-04 898