Sono completamente nuovo per OWIN e questo problema è stato un grosso ostacolo per me.HttpContext.Current.Session è null + OWIN
In sostanza, il mio MVC app Ho il seguente in classe di avvio:
public partial class Startup
{
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = OfficeSettings.ClientId,
Authority = OfficeSettings.Authority,
TokenValidationParameters = new System.IdentityModel.Tokens.TokenValidationParameters()
{
RoleClaimType = "roles"
},
Notifications = new OpenIdConnectAuthenticationNotifications()
{
AuthorizationCodeReceived = (context) =>
{
// code hidden for readability
if(HttpContext.Current.Session == null)
{
// It's null. Why is that?
}
var session = HttpContext.Current.Session;
if (session["myMockSession"] != null)
{
// Do stuff...
}
},
RedirectToIdentityProvider = (context) =>
{
// code hidden for readability
},
AuthenticationFailed = (context) =>
{
// code hidden for readability
}
}
});
Non capisco perché quando sto debug che la sessione è nullo. La proprietà HttpContext.Current non lo è. Ci sono dei vincoli con Sessions + OWIN? C'è qualche soluzione per questo problema? Come ci si dovrebbe avvicinare?
Side Nota 1: ho cercato di aggiungere questo pezzo di codice che ho trovato in uno dei SO domande e la sessione è stata ancora nulla:
app.Use((context, next) =>
{
// Depending on the handler the request gets mapped to, session might not be enabled. Force it on.
HttpContextBase httpContext = context.Get<HttpContextBase>(typeof(HttpContextBase).FullName);
httpContext.SetSessionStateBehavior(SessionStateBehavior.Required);
return next();
});
Side nota 2: I don Sembra che lo trovi più, ma qualcuno ha suggerito in una delle domande SO di aggiungere metodi vuoti Session_Start e Session_End (come metodi vuoti) a Global.asax. Questo non ha funzionato neanche.
Sto dando il benvenuto a qualsiasi consiglio. Grazie!
Ho un problema simile. sei riuscito a trovare qualche soluzione. – RonakThakkar
Ciao @RonakThakkar. Sfortunatamente, non ancora. Ho dovuto mettere da parte questo compito perché non riuscivo a trovare alcuna soluzione. Forse potremmo ottenere una soluzione in questo thread, si spera. – AuroMetal