[英]Razor Pages ASP.NET C# Core 3.1 MVC: PayU not redirecting to success and failure cshtml page after payment transaction
[英]Asp.Net Core 3.1 Cookies not appended Razor Pages C#
Cookies 未使用以下代碼附加到頁面,我嘗試將 IsEssential 添加到選項中,但沒有成功。 使用 Asp.Net Core 3.1 Razor 頁。 這是我的大部分 startup.cs 和附加的 cookie 代碼。
啟動.cs
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddRazorPages();
services.AddMvc(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});
services.AddHttpContextAccessor();
services.TryAddSingleton<IActionContextAccessor, ActionContextAccessor>();
services.AddSignalR();
services.AddControllers().AddNewtonsoftJson();
services.AddControllersWithViews().AddNewtonsoftJson();
services.AddRazorPages().AddNewtonsoftJson();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
}
app.UseRequestLocalization();
app.UseStaticFiles();
app.UseCookiePolicy();
app.useAuthentication();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllers();
});
}
添加 Cookie
string key = "Cookie";
var cookieValue = Request.Cookies[key];
if(cookieValue == null)
{
string value = "true";
var cookieOptions = new CookieOptions()
{
Path = "/",
HttpOnly = false,
IsEssential = true,
Expires = DateTime.Now.AddDays(1),
};
HttpContext.Response.Cookies.Append(key, value, cookieOptions);
}
建議添加 IsEssential 以覆蓋 CookiePolicy,但這並沒有解決任何問題。 Devtools 應用程序僅顯示.AspNetCore.Identity.Application 和.AspNetCore.Antiforgery cookies。
編輯:通過更改解決
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
到
services.ConfigureApplicationCookie(options =>
{
// Cookie settings
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(5);
options.LoginPath = "/Identity/Account/Login";
options.AccessDeniedPath = "/Identity/Account/AccessDenied";
options.SlidingExpiration = true;
});
我認為您的 startup.cs 中缺少一行
app.UseAuthentication();
它將身份驗證中間件添加到您的應用程序。 您必須在app.UseAuthorization();
之前調用它
這樣它就這樣顯示了:
app.UseRequestLocalization();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllers();
});
如果您按照https://learn.microsoft.com/es-es/as.net/core/security/authentication/identity?view=as.netcore-3.1&tabs=visual-studio中的說明進行操作,它應該可以正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.