QnA
사용언어
(칠해주세요) => (C#,VB) |
사용툴 (VS) : Visual Studio 2010 |
운영체제 (OS) : Windows 7 |
상세언어(칠해주세요.)
=> 1) ASP.NET, 2) ASP.NET MVC, 3) ASP.NET AJAX |
안녕하세요~ mvc3입니다! 쿠키에 대한 질문 드립니다.
인증이고 뭐고 일단은 다 필요없이(ㅠㅠ) 로그인 버튼 누르면 아이디랑 비밀번호가 일치하면 로그인이 되는 걸로 치고
쿠키(id값)를 생성하려고 하는데 mvc3 에서는 구문이 어떻게 되는 지 모르겠습니다.
아.. 쿠키 생성 및 삭제들은 클래스로 따로 빼려고 합니다.
어찌저찌 클래스로 만들어서 쿠키 생성은 했는데 파샬 페이지에 넣어줬거든요 ㅠㅠ?
@{
string tmp = "";
if (Request.Cookies["newCookie"] != null)
{
tmp = Request.Cookies["newCookie"].Value;
<text>
<b>안녕하세요 @tmp 님!</b>
[ @Html.ActionLink("로그아웃", "LogOut", "Member") ]
</text>
}
else
{
@:[ @Html.ActionLink("로그인", "LogIn", "Member") ]
}
}
이런 식으로요 ㅠㅠ.. 근데 이걸 cshtml 페이지에서 사용 못하나요 ㅠㅠ?
결론!! 파샬 페이지에 있는 변수(cookie)를 자식 페이지(cshtml)에서 사용 가능한 방법 없나요?
혹시 아시는 분 계시면 예제소스 좀 알려주세요 T_T.. 혹은 참고가 될 만한 소스라도..
부분부분 검색하니까 나오긴 하는데 대부분 어떻게 쓰는 지 제대로 안나와있더라구요 T_T
도와주세요~~!!
첫댓글 으흠... 클래스에서도 (참조하는 DLL 이라고 생각하겠습니다.) HttpContext.Current.Response 이렇게 해서 충분히 쓸수 있습니다. 그럼 참조하는 클래스에서도 web에서 받는 정보 고대로 받아서 쿠키나 섹션 ViewBag 같은거 다 사용가능하구요
HttpContext.Current.Response.Cookies 하니까 쿠키 나오네요.. 한번 이걸로 쿠키 관리 클래스를 만들어 보시길.. 저 같은경우는 이거랑 인증 처리 부분을 같이 연동해서 했던 기억이 있습니다.. 회원정보도 클래스에서 처리하구..
뭐 지금은 귀찮아서 그냥 그때 그때마다 쿠키를 받습니다.
앗!! 글을 수정했었는데.. 헤헤-_-* 답변 감사합니다!! 구글링 열심히 해서 말씀하신대로 HttpContext.Current로 적용했습니다~ 감사해욤!! ㅠㅠㅋㅋ
혹시 파샬 페이지에 쓴 변수를 사용할 수 있는 방법 아시나요 ㅠㅠ?
그리고 다른 분들하고 의견이 좀 틀릴수 있지만서도 저같은 경우는 ViewBag은 잘 안쓰고 싶습니다. 가득이나 ViewState 대문에 무거운데 거기에다가 몇줄 안돼는거지만 문자열을 더 추가한다는건.. 리피터 쓸때도 전 굳이 포스트백하는거 아니라면 Viewstate = false 하고 사용하고 싶거든요.. 음. 너무 영세한 업체에서만 일했나요^^;; 삼성같은 경우는 ViewState를 다 빼버리는 경우도 있습니다. 스위스 이스라엘까지 html 보내야하는데.. 페이지를 조금이라도 경량화해서 빠르게 보낼려고.. ... 으흠. 잡소리가 많았군요.. 어쨋든 컨텍스트 로 처리 가능하실것 같습니다.
앗! 그렇군요! 어디서는 ViewBag을 추천해주더라구요 ㅠㅠ..
빠르다고 했던 것 같은데 저는 아직 닷넷에 대해 무지해서 ㅠㅠ..
팁 잘 알아두겠습니다! 감사해요 '_~!!!!
헉.. 웁스...
파샬은 물리적으로는 다른 파일이지만. 한개의 클래스입니다. 그낭 한페이지에 있다 생각하시고 땡겨쓰시죠..
근데 쓰면 현재 컨텍스트에 없다고 빨간 줄이 가더라구요 ㅠㅠ..ㅋㅋ 힝.. 그냥 저기 파샬 페이지에 쓴 것처럼 @tmp 라고 쓰면 안되는 건가요??
음 소스를 안 보니 말슴 드리기가 조심스럽군요. 제가 생각하기엔 프로퍼티를 하나 만들어 보시죠 접근제한자때문에 안될수도 있다는 생각이.. 의외로 해결은 쉽게 되거든요.. 범인은 이 안에 있다 라는 유명한 애니메이션 대사처럼.. public 프로퍼티를 만들어서 접근이 돼는지 인식을 하는지부터 테스트 해보시죠..
http://blog.naver.com/empty_wagon?Redirect=Log&logNo=20155345127
참고하셔서
으잉.. 요기에 있는 아이들은 다 설정이 되어 있습니다 ㅠㅠ 제가 뭘 이상하게 한 건가요 ㅠㅠ?
asp.net mvc 3 버전에는 ViewData(), ViewBag() 을 제공해 주고 있지요. ViewBag 의 좋은점은 클래스를 설계하고 프로퍼티를 생성하여 이를 객체화 할때 이를 담아서 뷰단에 반환하여 이를 vs 툴의 인텔리센스를 통해 쉽게 사용할 수 있다는 것입니다.
어이 그 말 말고.. 변수가 인식 못하신다잖아 그걸 처리해달란 말이지.....
코드가 어떻게 되어 있는지 봐야 .... 감이라도 잡을 것 아닌가욤.ㅎㅎㅎ 내가 웹도사도 아니공 ㅡㅡ;
코드는 파샬 페이지에는 저게 다입니다 ㅠㅠ 그래서 자식 페이지에서 저 tmp라는 아이를 출력하고 싶은데 그게 안된다는 의미고 ㅠㅠ.. 뭔가 다른 코드가 필요한건가요 ㅠㅠ?
잠깐.. 심군 왜 내 나를 이야기 하지....
최근 영국에서는 쿠키 사용방지 법안이 통과되었다고 하네요.. 그래서 요증은 쿠키를 될 수 있으면 사용안하는것이 대세가 될꺼라고 합니다. - 물음에 답변도 못하고 주저리주저리 였습니다.....
아아 T_T 그렇군요!! 감사합니다 .. ㅠㅠ!!!
여긴 한국이다. activex 도 버리지 못하는 판에 ㅡㅡ;