Tôi hoàn toàn mới đối với OWIN và vấn đề này đã là một công cụ chặn chính đối với tôi.HttpContext.Current.Session is null + OWIN
Về cơ bản, ít ứng dụng MVC của tôi, tôi có sau tại Startup lớp:
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
}
}
});
Tôi không hiểu tại sao khi tôi gỡ lỗi rằng phiên là null. HttpContext.Current Property không phải là. Có bất kỳ ràng buộc nào với Phiên + OWIN không? Có cách giải quyết nào cho vấn đề này không? Làm thế nào nên tiếp cận nó?
Side lưu ý 1: Tôi đã cố gắng thêm đoạn mã này tôi đã tìm thấy trong một trong những câu hỏi SO và phiên vẫn còn null:
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 lưu ý 2: tôi don dường như không tìm thấy nó nữa, nhưng ai đó đã đề xuất trong một trong các câu hỏi SO để thêm các phương thức trống Session_Start và Session_End (như các phương thức trống) tại Global.asax. Điều đó không hiệu quả.
Tôi đang chào đón mọi lời khuyên. Cảm ơn!
Tôi có vấn đề tương tự. bạn có thể tìm thấy một số giải pháp. – RonakThakkar
Xin chào @RonakThakkar. Không may rằng chưa xong. Tôi phải bỏ công việc này sang một bên vì tôi không thể tìm ra giải pháp nào. Có lẽ chúng tôi có thể nhận được một giải pháp trong chủ đề này, hy vọng. – AuroMetal