dotnet-snippets.de
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1405 | Anzahl registrierter User: 1436 | Besucher online: 233
Hauptmenü
Home
Top Ten
Zufälliger Snippet
Tech-Ed-Gewinnspiel
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Partner von Codezone.de


Member of Microsoft Community Leader/Insider Program (CLIP)

Sessionverwaltung einmal anders


Autor: Rene Drescher-Hackel
Sprache: C#
Bewertung:
noch nicht bewertet

Anzahl der Aufrufe: 1531
  

Beschreibung:

Dieses Snippet zeigt, wie man mit Hilfe einer Enumeration Sessionobjekte organisieren und verwalten kann. Zusätzlich sind die Objekte Page.Session und System.Web.SessionState.HttpSessionState mit Hilfe von Extension Methods erweitert worden, so dass ich innerhalb einer Anwendung in allen Bereichen die Enumeration der Sessionkeys verwenden kann.
Eine detailierte Beschreibung findet sich auch in meinem Weblog: http://weblog.drescher-hackel.de/8DD51D74-573E-4D03-AAB9-B83578DD94D3/Session+einmal+anders+verwalten.content.aspx

Die Aufrufe sind dann recht überschaubar und verständlich:

AppSession.Set(SessionKey.Benutzer, "Rene");
AppSession.Get(SessionKey.Benutzer);
AppSession.Remove(SessionKey.Benutzer);
// oder
Session.Add(SessionKey.Benutzer, "Rene");
Session.Set(SessionKey.Benutzer, "Rene");
Session.Get(SessionKey.Benutzer);
Session.Remove(SessionKey.Benutzer);
// oder
SessionKey.Benutzer.Set("Rene");
SessionKey.Benutzer.Get();
SessionKey.Benutzer.Remove();


Abgelegt unter: Session, Extension Methods, Page.Session, HttpSessionState.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
using System.Web;
namespace www.drescher.hackel.de.SessionApp
{
    /// <summary>
    /// Enum zum Verwalten der SessionKeys
    /// </summary>
    public enum SessionKey
    {
        Benutzer
    }

    /// <summary>
    /// Statische Klasse zum Verwalten der Session
    /// </summary>
    public static class AppSession
    {
        /// <summary>
        /// Gibt die Session mit den übergebenen SessionKey als Key zurück
        /// </summary>
        /// <param name="name">SessionKey</param>
        /// <returns>object</returns>
        public static object Get(SessionKey name)
        {
            return HttpContext.Current.Session[name.ToString()];
        }

        /// <summary>
        /// Setzt die Session mit dem übergebenen SessionKey als Key
        /// </summary>
        /// <param name="name">SessionKey</param>
        /// <param name="value">object</param>
        public static void Set(SessionKey name, object value)
        {
            HttpContext.Current.Session[name.ToString()] = value;
        }

        /// <summary>
        /// Entfernt die Session entsprechend dem übergebenen SessionKey
        /// </summary>
        /// <param name="name">SessionKey</param>
        public static void Remove(SessionKey name)
        {
            HttpContext.Current.Session.Remove(name.ToString());
        }
    }

    /// <summary>
    /// Statische Klasse für Erweiterungsmethoden
    /// </summary>
    public static class ExtendSession
    {
        #region Extends System.Web.SessionState.HttpSessionState
        /// <summary>
        /// Erweitert System.Web.SessionState.HttpSessionState, um den Wert der Session entsprechend des übergebenen SessionKey zu ermitteln
        /// </summary>
        /// <param name="session">System.Web.SessionState.HttpSessionState</param>
        /// <param name="name">SessionKey</param>
        /// <returns>object</returns>
        public static object Get(this System.Web.SessionState.HttpSessionState session, 
            SessionKey name)
        {
            return AppSession.Get(name);
        }

        /// <summary>
        /// Erweitert System.Web.SessionState.HttpSessionState, um den Wert der Session entsprechend des übergebenen SessionKey zu setzen
        /// </summary>
        /// <param name="session">System.Web.SessionState.HttpSessionState</param>
        /// <param name="name">SessionKey</param>
        /// <param name="value">object</param>
        public static void Set(this System.Web.SessionState.HttpSessionState session, 
            SessionKey name, object value)
        {
            AppSession.Set(name, value);
        }

        /// <summary>
        /// Erweitert System.Web.SessionState.HttpSessionState, um den Wert der Session entsprechend des übergebenen SessionKey zu ermitteln
        /// Überschreibt dabei die bestehende Add-Methode
        /// </summary>
        /// <param name="session">System.Web.SessionState.HttpSessionState</param>
        /// <param name="name">SessionKey</param>
        /// <returns>object</returns>
        public static void Add(this System.Web.SessionState.HttpSessionState session, 
            SessionKey name, object value)
        {
            AppSession.Set(name, value);
        }

        /// <summary>
        /// Erweitert System.Web.SessionState.HttpSessionState, zum Entfernen der Session entsprechend dem übergebenen SessionKey
        /// </summary>
        /// <param name="name">SessionKey</param>
        public static void Remove(this System.Web.SessionState.HttpSessionState session,
            SessionKey name)
        {
            AppSession.Remove(name);
        } 
        #endregion

        #region Extends SessionKey
        /// <summary>
        /// Erweiterterung des Enums SessionKey zum Abrufen des Sessionswertes entsprechend des selektierten SessionKeys
        /// </summary>
        /// <param name="name">SessionKey</param>
        /// <returns>object</returns>
        public static object Get(this SessionKey name)
        {
            return AppSession.Get(name);
        }

        /// <summary>
        /// Erweiterterung des Enums SessionKey zum Setzen des Sessionswertes entsprechend des selektierten SessionKeys
        /// </summary>
        /// <param name="name">SessionKey</param>
        /// <param name="value">object</param>
        public static void Set(this  SessionKey name, object value)
        {
            AppSession.Set(name, value);
        }

        /// <summary>
        /// Erweiterterung des Enums SessionKey zum Entfernen der Session entsprechend dem übergebenen SessionKey
        /// </summary>
        /// <param name="name">SessionKey</param>
        public static void Remove(this  SessionKey name)
        {
            AppSession.Remove(name);
        } 
        #endregion
    }
}

Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)



schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.