2010-04-07 3 views
2

내 문제에 대한 또 다른 해결책이 있는지 궁금해 지는데, 그 점은 Sharepoint 방식으로 간주됩니다. 처음에는 내 사이트가 인트라넷이 아닌 인터넷 사이트입니다. 문제는 모든 값/변수를 페이지에서 셰어 포인트로 저장한다는 것입니다. 나는 세션 변수에 관한 문제를 안다.하지만 이것이 이것을 달성하는 유일한 방법 인 것 같다. 이 값을 저장할 수있는 웹 파트가 있다는 것을 알고 있지만, 페이지에서 페이지로 지속되지 않는다고 생각하는 것은 잘못된 것입니까?페이지에서 페이지까지 지속 값/변수

기본적으로 콘텐츠 쿼리 웹 파트를 확장하여 변수/값을 기반으로 결과를 동적으로 필터링합니다. 사용자는 드롭 다운에서 자신의 '지역'을 선택하고 사이트의 CQWP는이 값을 기반으로 결과를 변경하고 쿼리합니다 (이는 캐나다 사이트이므로 주정부 구조가됩니다. 따라서 누군가가 'Ontario' 이 값은 전역 변수에 저장되며 사이트 전체에 걸쳐 확장 된 CQWP는이 값을 가져오고 온타리오로 표시된 쿼리 목록).

세션 변수가 유일한 해결책입니까?

감사합니다.

답변

0

세션 변수 만이 해결책이 아닙니다. 브라우저 쿠키도 사용할 수 있습니다.

반드시 'SharePoint Way'는 아니지만 옵션입니다.

0

익명 사이트에 적절하지는 않지만 SharePoint 방식은 사용자 프로필에서 무언가를 사용하는 것일 수 있습니다. 일을하는 SharePoint 방식을 벗어나는 것에 대해 너무 많이 걱정하지 마십시오. 인터넷 사이트에서는 거의 피할 수없는 일입니다.

하나의 값만 저장하면 클라이언트 나 서버 코드에서 사용하기 쉽고 세션과 관련된 잠재적 인 저장 문제는 저장하지 않고 세션 변수가 아닌 쿠키를 사용하는 것이 좋습니다.

0

항상 이러한 종류의 데이터를 유지하기 위해 데이터베이스를 사용할 수 있습니다. SharePoint 팜 시나리오에서 세션의 문제를 구체화하지 않습니다.

0

웹 또는 웹 응용 프로그램 수준에서 영구 키/값을 읽거나 쓰거나 제거 할 수 있습니다. SPWeb.Properties Property을 살펴보십시오.

string strKey = "YourKey"; 
string strValue = "YourValue"; 

if (web.Properties.ContainsKey(strKey)) 
    // if property exists then update it 
    web.Properties[strKey] = strValue; 
else 
    // if property doesn't exist then add it 
    web.Properties.Add(strKey, strValue); 

web.Properties.Update();