如何在ASP中强制returnUrl的绝对uri类型. NET Core登录重定向?



我使用这个配置为我的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;
};

相关内容

最新更新