То, как я это делаю, таково.
Сначала я поместил все переменные Session в статический класс. Таким образом, у меня нет непересекающихся строк повсюду (имена переменных сеанса).
namespace MyCompany.Applications.MyApplication.Presentation.Web.Keys
{
internal static class SessionVariableKeys
{
internal static readonly string USER_ID = "UserId";
internal static readonly string RETURN_TO_PAGE = "return2Page";
}
}
Затем я использую статический вспомогательный метод для "очистки вещей".
namespace MyCompany.Applications.MyApplication.Presentation.Web.Helpers
{
internal static class SessionHelpers
{
internal static void LogoutUser(System.Web.HttpContext context)
{
context.Session[SessionVariableKeys.USER_ID] = null;
context.Session[SessionVariableKeys.RETURN_TO_PAGE] = null;
/* or */
context.Session.Remove(SessionVariableKeys.USER_ID);
context.Session.Remove(SessionVariableKeys.RETURN_TO_PAGE);
/* or */
context.Session.RemoveAll();
/* and */
/* icing on the cake */
context.Session.Abandon();
context.Response.Redirect("SomePage.aspx");
}
}
}
Затем в коде любой страницы asp.net (файл .cs) я могу вызвать эту процедуру.
namespace MyCompany.Applications.MyApplication.Presentation.Web
{
public partial class MyPage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
}
}
private void LogoutUser()
{
Helpers.SessionHelpers.LogoutUser(this.Context);
}
}
Всякий раз, когда я добавляю значение в SessionVariableKeys, я знаю, что мне нужно перейти в SessionHelpers, чтобы добавить строку к двум в процедуру очистки.
Это предотвращает "упс, я забыл о переменной сеанса YadaYadaYada.
Предотвращает синтаксические ошибки с этим стилем:
string myUserID = Session["userId"];
и позже
string myValue = string.Empty;
Session["user1d"] = myValue;
(Ака, глупая синтаксическая ошибка, которая может испортить вещи). (Обратите внимание на букву I против цифры 1).
Я просто предпочитаю приятные маленькие аккуратные "вспомогательные" методы ... вместо того, чтобы код был разбит повсюду. И «передача контекста во вспомогательный метод» - маленькая хитрость, чтобы это сделать.
Удачи в ваших начинаниях.