2012-02-23 2 views
0

저는 C#을 사용하여 ASP MVC 프로젝트를 만들고 있습니다.어디에서 ASP MVC 웹 사이트에 공유 데이터를 저장할 수 있습니까?

내 질문은 기본적으로 사이트에 사용자의 SignOn을 처리하는 방법에 대한 예를 들어 귀하의 웹 사이트에서 주어진 부분에 어떤 데이터를 저장하는 가장 좋은 장소이며, 웹 사이트의 다른 부분에서 해당 데이터에 액세스하려면 모델 계층의 클래스를 말하십시오.

데이터가 문자열의 목록에 불과하다고 가정하고, 목록으로 저장하거나 클래스로 래핑하십시오.

감사합니다.

답변

2

데이터가 얼마나 오래 있어야하는지에 따라 다릅니다. 당신은 세션 당 사이트에이 사라질 것입니다 사용자가 로그온 (일명 다음에 그것을 저장할 경우 컨트롤러

  • TempData를 사용할 수있는 단일 요청의 경우

    1. ) 당신은 사용할 수 있습니다 Session

    2. 영원히 주변을 지키고 싶다면 데이터베이스 또는 일종의 파일과 같은 오프라인 저장 장치를 사용해야합니다.

    행운을 빈다.

  • +0

    이 데이터의 범위 (요청 대 세션)에 대해 매우 분명히 밝히고 shenku의 조언을 따르십시오. 내 유일한 추가 사항은 memcached, redis 또는 appfabric과 같은 메모리 캐시를 서버간에 공유하려는 경우 고려하는 것입니다. – hoserdude

    0

    나는 URL Session variables in ASP.NET MVC 당신은 가능성이 세션 당신이 주어진 부분에서 얻을 일부 데이터를 저장하는 가장 좋은 장소입니다

    0

    에 저장 여기 전에 비슷한 질문을 질문했다 생각하여 예를 들어 사이트에 대한 사용자의 SignOn을 처리하는 방법에 대해 설명한 다음 웹 사이트의 다른 부분에있는 데이터에 액세스하려면 모델 레이어의 클래스를 말합니다.

    데이터베이스는 이러한 정보를 저장하기위한 훌륭한 후보입니다. 쿠키가 사용자마다 다르며 오래 보관할 필요가없는 쿠키 일 수도 있습니다. 또는 서버의 파일. 또는 클라우드에서. 또는 회사의 인트라넷 FTP 서버에 데이터를 보관할 C++ 비 관리 Win32 함수 주위에 P/Invoke 래퍼를 작성하십시오. 당신이 가진 가능성은 무한에 가깝습니다. 가장 편한 느낌을주는 것을 선택하십시오.

    그리고 나는 명시 적으로 이 아니며이 아니라 다른 사람들이 당신에게 제안 할 수있는 것과 반대되는 세션을 사용하도록 제안합니다.

    +0

    가끔씩 세션을 "합리적으로"피할 수없는 경우가 있습니다. 내가 사용하는 유일한 곳은 사용자가 일부 데이터 (예 : 양식)를 제출하려고 시도하지만 로그인하지 않았기 때문에 가입/로그인 페이지로 다시 연결해야하고 사전에 채워진 데이터를 다시 표시해야합니다. 리디렉션. 잔여 물인 "임시"데이터를 db에 저장하는 것만 가능합니다 (예 : 저장, 꺼내기, 삭제). – RPM1984

    +0

    @ RPM1984 물론 세션을 항상 피할 수 있습니다. 나는 항상 그것을 피하고 있습니다. 까지 당신이 설명하는 시나리오로, 음, 쿠키, HTML 5 sessionStorage, 같은 그것을 달성하는 다른 많은 방법이 있습니다 ... –

    +0

    내가 쿠키를 사용할 수있을 것 같아요,하지만 여전히 "세션"클라이언트이지만 -측면. HTML5 DOM 저장소의 경우 어떻게 작동합니까? 양식에서 가입 페이지로 양식 데이터를 가져온 다음 다시 표시하려면 어떻게해야합니까? POST, GET (로그인 페이지로 리디렉션), POST (로그인), 또 다른 GET (원래 페이지로 돌아 가기) 중 하나임을 기억하십시오. 쿠키와 함께 플러스, 당신은 그것을 explitly 파괴해야합니다 (또는 주위에 매달려). 적어도 TempData는 읽기 후에 자동으로 제거됩니다. 어쨌든, 우리는 하루 종일 갈 수 있습니다. 나는 너의 세션에 대한 느낌을 안다. :) – RPM1984

    1

    음, 용서해주십시오. 데이터베이스에 저장할 수 없습니까?

    "공유"란 무엇을 의미합니까? 다른 페이지가 아닌 동일한 사용자가 누구에 의해 공유 되었습니까? 아니면 다른 사용자가?

    후자 -> DB 인 경우.

    전자 메일이 TempData이거나 "인증"데이터에 관한 내용 인 경우 양식 인증 티켓에 저장합니다 (Forms Auth라고 가정).

    관련 문제