Совместное использование сеанса между ASP.NET Forms и ASP.NET Core - PullRequest
0 голосов
/ 21 мая 2018

У меня есть веб-приложение ASP.NET Forms, использующее RedisSessionProvider.Это настройка только через WebConfig со следующим.

<sessionState mode="Custom" customProvider="RedisSessionProvider">
  <providers>
    <add name="RedisSessionProvider" applicationName="myApp" type="Microsoft.Web.Redis.RedisSessionStateProvider" connectionString="RedisConnection" ssl="true" />
  </providers>
</sessionState>
<connectionStrings>
<add name="RedisConnection" connectionString="host:port,password=myPassword,ssl=True,abortConnect=False"/></connectionStrings>

Я хотел бы поделиться этим с ASP.NET Core SubSite / SubApplication.Я могу поделиться им с другими дочерними сайтами, которые являются ASP.NET (MVC / Forms), просто добавив ссылку и добавив вышеуказанное к их WebConfigs.

Однако для .NET Core я могу 'не могу понять, как поделиться этим.Имейте в виду, что код сайта форм ASP.NET блокируется на 3 месяца, поэтому мы не можем вносить в него какие-либо изменения.

В приложении ASP.NET Core я ссылался на Microsoft.AspNetCore.DataProtection и StackExchange.Redis.И иметь следующий код в Startup.cs

public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        services.AddSingleton<IConfiguration>(Configuration);
        string redisConnectionString = Configuration.GetValue<string>("Redis:ConnectionString");
        string redisKey = Configuration.GetValue<string>("Redis:Key");
        var redis = ConnectionMultiplexer.Connect(redisConnectionString);
        services.AddDataProtection().PersistKeysToRedis(redis, redisKey).SetApplicationName("myApp");
        services.AddAuthentication("Identity.Application").AddCookie("Identity.Application", 
            options =>
        {
            options.Cookie.Name = "ASP.NET_SessionId";
        });
        services.AddSession(options =>
        {
            options.Cookie.Name = "ASP.NET_SessionId";
        });
        services.AddOptions();
    }

И я добавил app.UseSession () в публичный void Configure (...).

Это переименует cookie втакой же, как хост-сайт, но он не дает мне доступ к тому же хранилищу сессий.Я предполагаю, что это как-то связано с тем, как файлы cookie шифруются в ядре .NET против ASP.NET.

Возможно ли то, что я пытаюсь сделать без изменения сайта Host .NET Forms?Если это возможно только в том случае, если я изменю хост (должен быть в будущем), что мне делать там?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...