Подведение итогов ответов @jrojo и @Maxam выше, с тем, что я использую.
Я использую AWS DynamoDB в качестве хранилища сессий (немного выходит за рамки вопроса, но дает пример).
Добавить пакет через NUGET:
Install-Package AWS.SessionProvider
Обновите Web.config, чтобы иметь ключи в appSettings:
<add key="AWSAccessKey" value="XXX" />
<add key="AWSSecretKey" value="YYY" />
И поставщик сеанса для system.web:
<sessionState timeout="20"
mode="Custom"
customProvider="DynamoDBSessionStoreProvider">
<providers>
<add name="DynamoDBSessionStoreProvider"
type="Amazon.SessionProvider.DynamoDBSessionStateStore, AWS.SessionProvider"
AWSProfilesLocation=".aws/credentials"
Table="ASP.NET_SessionState"
Region="us-east-1"
/>
</providers>
</sessionState>
Добавить что-либо в сеанс в global.asax при запуске сеанса:
void Session_Start(object sender, EventArgs e) {
HttpContext.Current.Session.Add("somethingToForceSessionIdToStick", string.Empty);
}
Проверьте, добавив это к бритве любой страницы. Обновите эту страницу, затем откройте окно ignito и просмотрите другой сеанс:
@HttpContext.Current.Session.SessionID
BobsYourUncle