У меня есть веб-приложение, разработанное на. net ядре 3.1, я использую CookiAuthentication и Jwt Authentication Оба Jwt для моего API-интерфейса и Cookiauthentication для моих форм, он отлично работает на локальном, но когда я публикую sh мой сайт на сервере аутентификация jwt не работает, мой сайт размещен на azure Я не знаю, может ли это вызвать эту проблему или нет мои коды запуска:
public void ConfigureServices(IServiceCollection services)
{
var connection = Configuration.GetConnectionString("LocalDB");
services.AddDbContext<Models.CoreDBContext>(options => options.UseSqlServer(connection));
services.Configure<MySettings>(Configuration.GetSection("MySettings"));
services.AddControllersWithViews().AddNewtonsoftJson();
services.AddMvc();
services.AddMvcCore().AddAuthorization();
services.AddRazorPages().AddRazorRuntimeCompilation();
services.AddIdentity<Models.AspNetUser, IdentityRole>()
.AddEntityFrameworkStores<Models.CoreDBContext>()
.AddDefaultTokenProviders();
services.Configure<IdentityOptions>(options =>
{
// Password settings.
options.Password.RequireDigit = false;
options.Password.RequireLowercase = false;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequireUppercase = false;
options.Password.RequiredLength = 6;
options.Password.RequiredUniqueChars = 1;
// Lockout settings.
options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5);
options.Lockout.MaxFailedAccessAttempts = 5;
options.Lockout.AllowedForNewUsers = true;
// AspNetUser settings.
options.User.AllowedUserNameCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
options.User.RequireUniqueEmail = false;
});
services.ConfigureApplicationCookie(options =>
{
options.AccessDeniedPath = "/Account/AccessDenied";
options.Cookie.Name = "YourAppCookieName";
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(60);
options.LoginPath = "/Account/Login";
options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
options.SlidingExpiration = true;
});
services.AddDistributedMemoryCache();
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(20);
options.Cookie.HttpOnly = true;
options.Cookie.IsEssential = true;
});
services.AddMvc().AddNewtonsoftJson(opt =>
{
opt.SerializerSettings.ContractResolver = new DefaultContractResolver();
});
services
.AddAuthentication(
)
.AddCookie(cng =>
{
cng.LoginPath = "/User/Login";
cng.AccessDeniedPath = "/User/AccessDenied";
})
.AddJwtBearer(options =>
{
options.SaveToken = true;
options.RequireHttpsMetadata = false;
options.TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuerSigningKey = true,
ValidateLifetime = true,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Enums.JwtBarearKey)),
};
});
}