Uzak uygulama oturum durumu
Uzak uygulama oturum durumu, oturum durumunu almak için ASP.NET Core ile ASP.NET uygulaması arasındaki iletişimi etkinleştirir. Bu, ASP.NET uygulamasında oturum durumunu almak ve ayarlamak için sorgulanabilen bir uç noktanın açığa alınmasıyla etkinleştirilir.
HttpSessionState serileştirmesi
Uzak uygulama oturum durumunun HttpSessionState etkinleştirilmesi için nesne seri hale getirilmelidir. Bu, varsayılan ikili yazıcı uygulamasının sağlandığı türünün Microsoft.AspNetCore.SystemWebAdapters.SessionState.Serialization.ISessionSerializer
uygulanmasıyla gerçekleştirilir. Bu, aşağıdaki kod tarafından eklenir:
builder.Services.AddSystemWebAdapters()
.AddSessionSerializer(options =>
{
// Customize session serialization here
});
Yapılandırma
İlk olarak, ASP.NET Core ve ASP.NET uygulamalarını bağlamak için uzak uygulama kurulum yönergelerini izleyin. Ardından, uzak uygulama oturum durumunu etkinleştirmek için çağrılacak birkaç ek uzantı yöntemi vardır.
ASP.NET Core yapılandırması, bilinen oturum öğesi türlerini çağırmayı AddRemoteAppSession
ve AddJsonSessionSerializer
kaydetmeyi içerir. Kod aşağıdakine benzer görünmelidir:
builder.Services.AddSystemWebAdapters()
.AddJsonSessionSerializer(options =>
{
// Serialization/deserialization requires each session key to be registered to a type
options.RegisterKey<int>("test-value");
options.RegisterKey<SessionDemoModel>("SampleSessionItem");
})
.AddRemoteAppClient(options =>
{
// Provide the URL for the remote app that has enabled session querying
options.RemoteAppUrl = new(builder.Configuration["ReverseProxy:Clusters:fallbackCluster:Destinations:fallbackApp:Address"]);
// Provide a strong API key that will be used to authenticate the request on the remote app for querying the session
options.ApiKey = builder.Configuration["RemoteAppApiKey"];
})
.AddSessionClient();
Oturum desteği, ASP.NET Core işlem hattı için ek çalışma gerektirir ve varsayılan olarak açık değildir. ASP.NET Core meta verileri aracılığıyla yol başına temelinde yapılandırılabilir.
Örneğin, oturum desteği için bir denetleyiciye açıklama eklemek gerekir:
[Session]
public class SomeController : Controller
{
}
veya varsayılan olarak tüm uç noktaları etkinleştirmek için:
app.MapDefaultControllerRoute()
.RequireSystemWebAdapterSession();
Çerçeve eşdeğeri, içinde Global.asax.cs
aşağıdaki değişikliğe benzer olacaktır:
SystemWebAdapterConfiguration.AddSystemWebAdapters(this)
.AddJsonSessionSerializer(options =>
{
// Serialization/deserialization requires each session key to be registered to a type
options.RegisterKey<int>("test-value");
options.RegisterKey<SessionDemoModel>("SampleSessionItem");
})
// Provide a strong API key that will be used to authenticate the request on the remote app for querying the session
// ApiKey is a string representing a GUID
.AddRemoteAppServer(options => options.ApiKey = ConfigurationManager.AppSettings["RemoteAppApiKey"])
.AddSessionServer();
Protokol
Salt okunur
Salt okunur oturum, herhangi bir kilitleme olmadan çerçeve uygulamasından oturum durumunu alır. Bu, bir oturum durumu döndürecek ve hemen kapatılacak tek GET
bir istektir.
Yazılabilir
Yazılabilir oturum durumu protokolü salt okunur ile başlar, ancak aşağıdakilerden farklıdır:
- Durumu güncelleştirmek için ek
PUT
bir istek gerektirir - Oturum tamamlanıncaya kadar ilk
GET
istek açık tutulmalıdır; kapatılırsa oturum güncelleştirilemez
ASP.NET Core