के साथ सत्र का उपयोग कर सकते इस उत्तर the initial answer से एक रीमिक्स है, इसलिए का सार इसे @ ट्राचर के लिए जिम्मेदार ठहराया जाना चाहिए। संपादन के सुझाव देने के बजाय इसे अलग-अलग पोस्ट करने के लिए यह काफी अलग है।
जाना चाहिए तुम्हें बुनियादी परीक्षण प्रयोजनों के लिए एक छोटा सा Owin एप्लिकेशन बनाना चाहते (जैसे एक बड़ा API के लिए एक ठूंठ/नकली जब एकीकरण परीक्षण कर के रूप में), सत्र राज्य का उपयोग ठीक काम करेगा की एक से थोड़ा hakish रास्ता सहित ।
सबसे पहले, आप इन की जरूरत है:
public static void RequireAspNetSession(IAppBuilder app)
{
app.Use((context, next) =>
{
var httpContext = context.Get<HttpContextBase>(typeof(HttpContextBase).FullName);
httpContext.SetSessionStateBehavior(SessionStateBehavior.Required);
return next();
});
// To make sure the above `Use` is in the correct position:
app.UseStageMarker(PipelineStage.MapHandler);
}
तुम भी है कि के रूप में मूल जवाब किया बना सकते हैं एक विस्तार पद्धति के रूप में:
using Microsoft.Owin;
using Microsoft.Owin.Extensions;
using Owin;
उन के साथ आप एक सहायक विधि बना सकते हैं ।
ध्यान दें कि अगर आप का उपयोग नहीं करते UseStageMarker
आप इस त्रुटि का सामना करना होगा:
Server Error in '/' Application.
'HttpContext.SetSessionStateBehavior' can only be invoked before 'HttpApplication.AcquireRequestState' event is raised.
किसी भी मामले में, के साथ आप ऊपर अब इस तरह से अपनी Owin अनुप्रयोग में HttpContext उपयोग कर सकते हैं:
public void Configuration(IAppBuilder app)
{
RequireAspNetSession(app);
app.Run(async context =>
{
if (context.Request.Uri.AbsolutePath.EndsWith("write"))
{
HttpContext.Current.Session["data"] = DateTime.Now.ToString();
await context.Response.WriteAsync("Wrote to session state!");
}
else
{
var data = (HttpContext.Current.Session["data"] ?? "No data in session state yet.").ToString();
await context.Response.WriteAsync(data);
}
});
}
आप इस छोटे अनुप्रयोग के साथ आईआईएस एक्सप्रेस अप आग, तो पहले आपको मिलेगा:
No data in session state yet.
तो अगर आप http://localhost:12345/write
करने के लिए जाना आप प्राप्त करेंगे:
Wrote to session state!
तो अगर आप वापस जाने के लिए/किसी अन्य यूआरएल है कि मेजबान पर जाना आप प्राप्त करेंगे:
11/4/2015 10:28:22 AM
या कुछ इसी तरह की।
मेरा सत्र अभी भी शून्य है। इसका कारण क्या हो सकता है? – Rastko
वही है, यह अभी भी 'शून्य' है !! – gdmanandamohon