我使用这个配置为我的auth操作
.AddCookie(SchemeName, c =>
{
c.LoginPath = "/login";
c.LogoutPath = "/login/logout";
c.Events.OnRedirectToAccessDenied = context =>
{
context.Response.StatusCode = 403;
return Task.CompletedTask;
};
c.ExpireTimeSpan = CookieLifetime;
})
它工作得很好,并在需要时重定向到我的LoginController Index方法,并传递页面引起重定向的returnUrl参数,但这个returnUrl参数是相对的。我怎样才能强迫ASP。. NET核心传递绝对url代替?
我设法用这段代码做到了,但我不确定这是一个好方法
c.Events.OnRedirectToLogin = context =>
{
var uri = new Uri(context.RedirectUri);
var ru = $"{uri.GetLeftPart(UriPartial.Path)}?returnUrl={context.Request.GetEncodedUrl()}";
context.Response.Redirect(ru);
return Task.CompletedTask;
};