рдЕрднрд┐рд╡рд╛рджрди

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдПрдХ рднрдВрдбрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ Redis рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рддреНрд░ рд╕реНрдЯреЛрд░ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рд░реЗрдбрд┐рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, Redis рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдкреНрд░рд╛рд░реВрдк (рдФрд░ рди рдХреЗрд╡рд▓) рдореЗрдВ рдПрдХ рдмрд╣реБрдд рддреЗрдЬрд╝ рднрдВрдбрд╛рд░рдг рд╣реИред рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреБрдХреНрдд рд╣реИ рдФрд░ рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреЛ рд▓реЛрдЧ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдореИрдВ рд╕реНрд░реЛрдд рдХреЛ рдПрдХ рд▓рд┐рдВрдХ рджреВрдВрдЧрд╛ред
рдпрд╣ рд╕рдм рдХреНрдпреЛрдВ рдЬрд░реВрд░реА рд╣реИ
рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рддреНрд░ рднрдВрдбрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА:
1. рд╕рддреНрд░ рд▓рд┐рдЦрдиреЗ / рдкрдврд╝рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдирд┐рдпрдВрддреНрд░рдгрдореИрдВ рдмрд╛рдж рдореЗрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХреНрдпреЛрдВред
2. рдЖрд╡реЗрджрди рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рддрд░рдгредрдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
3. рдЧрддрд┐редрд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХреНрдпреЛрдВред
рддреНрдпрд╛рдЧ
рдореБрдЭреЗ рддреБрд░рдВрдд рдпрд╣ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдХреЛрдб рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╕реНрдЯреЗрдЬ рдкрд░ рд╣реИ, рдореЗрд░реЗ рдЦрд╛рд▓реА рд╕рдордп рдореЗрдВ рд╕рд┐рд░реНрдл рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдЖрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рд▓рд┐рдпрд╛ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рдПрдХ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд╢рди рдХрд╛ рднрд╛рд╡рд╛рддреНрдордХ рдЗрд░рд╛рджрд╛ рднреА рд╣реИ - рд╢рд╛рдпрдж рдХреЛрдИ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдХрдорд┐рдпреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдЕрдВрддрддрдГ рдЗрд╕реЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░реВрдВ :)
рдореИрдВ рдЦреБрдж рд▓рдЧрднрдЧ рджреЛ рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рд░реЗрдбрд┐рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рдХреБрдЫ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рд╣реИ (рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдпрд╣ рд╕реБрдирдХрд░ рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА)ред
Redis рд╕реНрдерд╛рдкрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рд╡рд░реНрдЪреБрдЕрд▓рдмреЙрдХреНрд╕ рдкрд░ рдЙрдмрдВрдЯреВ рд╕рд░реНрд╡рд░ рдХреЛ рдЙрдард╛рдпрд╛, рдФрд░ рдлрд┐рд░ рдпрд╣ рдХрдИ рдХрдорд╛рдВрдбреЛрдВ рдФрд░ рдХрдИ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдерд╛ (рдПрдХ рд╕реНрдерд┐рд░ рдЖрдИрдкреА рдХреЗ рд▓рд┐рдП рдФрд░ рд░реЗрдбрд┐рд╕ рдХреЛ рди рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдпрд╣реЛрд╕реНрдЯ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП)ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡рд░ AppFabric рдХреИрд╢ рдЗрд╕рдХреЗ рд╕рддреНрд░ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд╕рд╛рде, рд▓реЗрдХрд┐рди рдмрд┐рдВрджреБ 1 рдХреЗ рдХрд╛рд░рдг, рдЖрдкрдХреЛ рдЕрднреА рднреА рдЕрдкрдиреЗ рдкреНрд░рджрд╛рддрд╛ (рдХреЗрд╡рд▓ рдЕрдкрдиреА рдХреИрд╢ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЧрддрд┐ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдпрд╣ рдореБрдЭреЗ Redis рд▓рдЧрддрд╛ рд╣реИред рддреЗрдЬ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рджрд╛рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ
рд╕рддреНрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рдЗрд╕ рд╢рдмреНрджрдХреЛрд╢ рдХреЛ рдЕрдиреБрд░реЛрдз рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрдВрдд рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб (рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕
рдХрдИ рдЕрдиреБрд░реЛрдз рд╣реИрдВ рдЬреЛ рд╕рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ , рдФрд░ рди рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдорд╛рди рднреА рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ
рдЗрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдорд╛рдирдХ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдореЗрдВ, рдХреЗрд╡рд▓ 1 рдЕрдиреБрд░реЛрдз рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рддреНрд░ (рдЬреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдкрд░ рдХрдИ рдмреНрд▓реЙрдХ рд╣реИрдВ рдЬреЛ рд╕рдорд╛рдирд╛рдВрддрд░ (AJAX) рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдФрд░ рд╕рднреА рдХреЛ рд╕рддреНрд░ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдЕрдкрдиреЗ рдЪрд░ рдмрджрд▓рддрд╛ рд╣реИ)ред рдХрд┐рд╕реА рднреА рдорд╛рдирдХ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд╕рд╛рде, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рд╣рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЬрд░реВрд░рдд рд╣реИред
рд╕рддреНрд░ рд╕реНрдЯреЛрд░ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ
2 рдореБрдЦреНрдп рдФрд░ 1 рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд░реНрдЧ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рддреНрд░ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- RedisNoLockSessionStateStoreProvider SessionStateStoreProviderBase рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕рддреНрд░ (рдпрд╛рдиреА рдкреВрд░реЗ рд╕рдВрдЧреНрд░рд╣) рдХреЛ "рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ" рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ред рдпрд╣рд╛рдВ рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЙрдирдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдирд╛рдо рд╣рдореЗрд╢рд╛ рдкрд╣рд▓реЗ рдЙрд▓рдЭрди рдореЗрдВ рдереЗ: GetItem, RemoveItem, ... рдирд╛рдореЛрдВ рд╕реЗ рдЖрдк рдпрд╣ рддрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рддреНрд░ рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред
рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рддреНрд░ рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдИ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╡рд░реНрдЧ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓реЗрддрд╛ рд╣реИред
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
Copy Source | Copy HTML public class RedisNoLockSessionStateStoreProvider : SessionStateStoreProviderBase { //... public override SessionStateStoreData CreateNewStoreData(System.Web. HttpContext context, int timeout) { string sessionId = context.Request.Cookies[RedisNoLockSessionIDManager.CookieName].Value; return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (sessionId, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), timeout); } public override SessionStateStoreData GetItem(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { lockAge = TimeSpan .Zero; lockId = null ; locked = false ; actions = SessionStateActions .None; // RedisNoLockSessionStateItemsCollection return new SessionStateStoreData ( new RedisNoLockSessionStateItemsCollection (id, _defaultTimeout, _redisServer, _redisDb), SessionStateUtility.GetSessionStaticObjects(context), _defaultTimeout); } public override SessionStateStoreData GetItemExclusive(System.Web. HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { return this .GetItem(context, id, out locked, out lockAge, out lockId, out actions); } //... }
- RedisNoLockSessionStateItemsCollection, рдЬреЛ ISessionStateItemCollection рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рд╡рд╣ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рд╕рддреНрд░ рдХреЗ рддрддреНрд╡реЛрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рд╡рд╣ рд▓рдЧрднрдЧ рд╕рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рд╛рдкреНрдд рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИред
Copy Source | Copy HTML
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ
- {
- // ...
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд╕реНрддреБ рдпрд╣ [ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо]
- {
- рдкреНрд░рд╛рдкреНрдд
- {
- string key = GetKey (рдирд╛рдо);
- рдЙрдкрдпреЛрдЧ ( var redis = SingleRedisPool.GetClient (_redisServer))
- {
- рд╡рд╛рдкрд╕реА redis.Get < рдСрдмреНрдЬреЗрдХреНрдЯ > (рдХреБрдВрдЬреА);
- }
- }
- рд╕реЗрдЯ
- {
- string key = GetKey (рдирд╛рдо);
- рдЙрдкрдпреЛрдЧ ( var redis = SingleRedisPool.GetClient (_redisServer))
- {
- рдмреВрд▓ рдкрд░рд┐рдгрд╛рдо = redis.Set < рдСрдмреНрдЬреЗрдХреНрдЯ > (рдХреБрдВрдЬреА, рдореВрд▓реНрдп );
- }
- }
- }
- // ...
- }
- рдЦреИрд░, рддреАрд╕рд░реА рд╢реНрд░реЗрдгреА RedisNoLockSessionIDManager рдЬреЛ рд╕рддреНрд░ рдЖрдИрдбреА рдФрд░ рдХреБрдХреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред
Copy Source | Copy HTML
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ RedisNoLockSessionIDManager : RedisSessionConfig , ISessionIDManager
- {
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ CreateSessionID ( HttpContext рд╕рдВрджрд░реНрдн)
- {
- рд╡рд╛рдкрд╕реА рдЧрд╛рдЗрдб .NewGuid ()ред ToString ( "рдПрди" );
- }
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ GetSessionID ( HttpContext рд╕рдВрджрд░реНрдн)
- {
- var рдХреБрдХреА = рд╕рдВрджрд░реНрднред Request.Cookies.Get (рдХреБрдХреА рдирд╛рдо);
- рдХреБрдХреА рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛рдУ! = рдЕрд╢рдХреНрдд рдХреБрдХреА.рд╡рд╛рдпреБ: рдЕрд╢рдХреНрдд ;
- }
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓ рдЖрд░рдВрднрд┐рдХ рдЕрд╕рдорд╛рди ( HttpContext рд╕рдВрджрд░реНрдн, рдмреВрд▓ suppressAutoDetectRedirect, рдЖрдЙрдЯ рдмреВрд▓ supportSessionIDReissue)
- {
- supportSessionIDReissue = false ;
- рдЭреВрдареЗ рд▓реМрдЯрдирд╛ ;
- }
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп SaveSessionID ( HttpContext рд╕рдВрджрд░реНрдн, string id, out bool redirected, out bool cookieAdded)
- {
- HttpCookie рдХреБрдХреА = рдирдпрд╛ HttpCookie (рдХреБрдХреА рдирд╛рдо, рдЖрдИрдбреА);
- рдХреБрдХреА .Expires = DateTime .Now.Add (configuration.Timeout);
- рд╕рдиреНрджрд░реНрднред
- рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд = рдЭреВрда ;
- рдХреБрдХреАрдбреЗрдб = рд╕рдЪреНрдЪрд╛ ;
- }
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓ рд╡реИрдз ( рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрдИрдбреА)
- {
- рд╕рдЪ рд▓реМрдЯрдирд╛ ;
- }
- // редред
- }
рд╡рд╣ рд╕рдм рд╣реИред Web.config рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдХреНрд╖рдгреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рднрд╛рдЧ рд╕рддреНрд░ рдХреЗ рд▓рд┐рдП рдФрд╕рдд рджрд░реНрдЬреЗ рдХрд╛ рд╣реИ, рдЖрдк рдЗрд╕ рднрд╛рдЧ рдХреЛ рд╕реНрд░реЛрдд рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдореИрдВ рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ рдХреБрдЫ рдмрд╛рддреЗрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
- рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рд░реВрдЪрд┐ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдпрд╣ рдореЗрд░реА рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИред
- рдпрджрд┐ рд╕рддреНрд░ рдореЗрдВ рдПрдХ рд╣реА рддрддреНрд╡ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд▓рдЧрднрдЧ 100% рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреАред
- рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЕрдзрд┐рдХ рд╢рд╛рд╕реНрддреНрд░реАрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рднреА рд╣реИ, рдЕрд░реНрдерд╛рддред рдкреВрд░реЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдФрд░ рд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдкреГрд╖реНрда рд╣реИ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд╕рддреНрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рд╣рд┐рдд рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
- рдареАрдХ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реА рдпрд╣рд╛рдБ redissessionstore.codeplex.com рд╣реИ
рдореБрдЭреЗ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рд╕реБрдирдХрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред