1

ASP.NET MVC 응용 프로그램에 대한 사용자 지정 세션 상태 공급자 구현 중입니다. 내 요구 사항은으로 세션 데이터를 SQL 서버의 사용자 정의 테이블에 저장해야한다는 것입니다.ASP.NET MVC에서 사용자 지정 세션 상태 공급자 구현

나는 기존 SQL 세션 상태 제공자 (몇 가지 방법을 재정의)를 사용하거나 나는 추상 클래스 SessionStateStoreProviderBase를 구현하여 처음부터 만들했습니다 수 있습니까?

답변

-1

왜 주 공급자로 SQL 서버를 사용하고 있지 않습니까? 구성에서 설정할 수 있으며 자동으로 발생하면 SQL Server는 데이터를 직렬화 된 이진 데이터로 저장하고 효율적으로 검색합니다.

짧은 대답은 예입니다.하지만 휠을 다시 발명하고 있습니다. 데이터를 다른 용도로 사용하거나 공정에서 직접 편집해야합니까? 나는 이것을 위해 별도의 프로세스를 사용하고자한다. 당신은 이것을하기 위해 약간의 일을 만들려고합니다. 나중에보아야 할 필요가 있다면 sessiopn에 설정할 때 xml 속성을 somwhere에 저장하는 것이 낫습니다.

은 XML 문서가 SQL 서버에 저장되어 있으므로

Session["MyCustomXml"] = mydoc; 

var mydoc = Session["MyCustomXml"] as XmlDocument; 

는 다음 설정을 사용하여 세션 객체합니다. 당신이에서 나중에 볼 필요가있는 경우

<sessionState 
      mode="SQLServer" 
      sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>" 
      cookieless="false" 
      timeout="20" 
    /> 

, 그냥 독특한 유지하기 위해 파일 이름으로 세션 ID와 somwhere 안전하게 디스크에 저장합니다.

+0

세션 상태를 사용할 필요가 없으며 상태를 변경할 수 있습니다. 무거운 세션 상태 공급자를 사용할 필요가 없습니다. – PositiveGuy

+0

SQL 서버 세션 상태 제공자는 보안 세션 ID로 자신이 직접 세션을 저장하는 것보다 무겁지 않습니다. – Gats

3

예 SQL Server 또는 Oracle을 사용하여 클래스 공급자 세션을 사용자 정의 할 수 있습니다. SessionStateStoreProviderBase에서 상속받은 모델의 클래스를 상속 받고 필요한 메서드를 구현하면 필요한 메서드 목록 here을 확인하십시오.

예제를 사용하려면 here을 참조하십시오. 이 예제에서는 odbc를 사용했지만 액세스 클래스는 OdbcConnection과 SqlConnection을 바꾸거나 그 반대로 바꿉니다.

행운을 빈다.

관련 문제