In order to control Session Variable in DLL, the class need to inherit from IRequiresSessionState interface and set the class Serializable attribute.
The property should be static (class member) in order to avoid instantiate new object.
eg. CurrentUserSESSION.USER_ID
public enum SESSION_NAME
{
USER_ID,
USER_PASSWORD,
USER_FULLNAME,
USER_ROLE
}
[Serializable()]
public class CurrentUserSESSION : IRequiresSessionState
{
public static string USER_ID {
get
{
return GetSessionValue<string>(SESSION_NAME.USER_ID);
}
set
{
SetSessionValue<string>(SESSION_NAME.USER_ID, value);
}
}
public static string USER_PASSWORD //login user id
{
get
{
return GetSessionValue<string>(SESSION_NAME.USER_PASSWORD);
}
set
{
SetSessionValue<string>(SESSION_NAME.USER_PASSWORD, value);
}
}
public static string USER_FULLNAME
{
get
{
return GetSessionValue<string>(SESSION_NAME.USER_FULLNAME);
}
set
{
SetSessionValue<string>(SESSION_NAME.USER_FULLNAME, value);
}
}
public static string USER_ROLE
{
get
{
return GetSessionValue<string>(SESSION_NAME.USER_ROLE);
}
set
{
SetSessionValue<string>(SESSION_NAME.USER_ROLE, value);
}
}
public CurrentUserSESSION()
{
//
// TODO: Add constructor logic here
//
}
private static T GetSessionValue<T>(SESSION_NAME SESSIONNAME)
{
if (null != HttpContext.Current.Session[SESSIONNAME.ToString()])
return (T)HttpContext.Current.Session[SESSIONNAME.ToString()];
else
return default(T);
}
private static void SetSessionValue<T>(SESSION_NAME SESSIONNAME, T SESSIONVALUE)
{
HttpContext.Current.Session[SESSIONNAME.ToString()] = SESSIONVALUE;
}
}
The property should be static (class member) in order to avoid instantiate new object.
eg. CurrentUserSESSION.USER_ID
public enum SESSION_NAME
{
USER_ID,
USER_PASSWORD,
USER_FULLNAME,
USER_ROLE
}
[Serializable()]
public class CurrentUserSESSION : IRequiresSessionState
{
public static string USER_ID {
get
{
return GetSessionValue<string>(SESSION_NAME.USER_ID);
}
set
{
SetSessionValue<string>(SESSION_NAME.USER_ID, value);
}
}
public static string USER_PASSWORD //login user id
{
get
{
return GetSessionValue<string>(SESSION_NAME.USER_PASSWORD);
}
set
{
SetSessionValue<string>(SESSION_NAME.USER_PASSWORD, value);
}
}
public static string USER_FULLNAME
{
get
{
return GetSessionValue<string>(SESSION_NAME.USER_FULLNAME);
}
set
{
SetSessionValue<string>(SESSION_NAME.USER_FULLNAME, value);
}
}
public static string USER_ROLE
{
get
{
return GetSessionValue<string>(SESSION_NAME.USER_ROLE);
}
set
{
SetSessionValue<string>(SESSION_NAME.USER_ROLE, value);
}
}
public CurrentUserSESSION()
{
//
// TODO: Add constructor logic here
//
}
private static T GetSessionValue<T>(SESSION_NAME SESSIONNAME)
{
if (null != HttpContext.Current.Session[SESSIONNAME.ToString()])
return (T)HttpContext.Current.Session[SESSIONNAME.ToString()];
else
return default(T);
}
private static void SetSessionValue<T>(SESSION_NAME SESSIONNAME, T SESSIONVALUE)
{
HttpContext.Current.Session[SESSIONNAME.ToString()] = SESSIONVALUE;
}
}
Helpful... !!! Thanks
ReplyDelete