gpt4 book ai didi

c# - ASP.NET 核心,更改未经授权的默认重定向

转载 作者:IT王子 更新时间:2023-10-29 04:20:29 26 4
gpt4 key购买 nike

我正在尝试重定向到 ASP.NET MVC6 中的不同登录 url

我的帐户 Controller 登录方法有一个 Route 属性来更改 url。

[HttpGet]
[AllowAnonymous]
[Route("login")]
public IActionResult Login(string returnUrl = null)
{
this.ViewData["ReturnUrl"] = returnUrl;
return this.View();
}

When attempting to access an unathorized page, I am redirected to the invalid url, it should just be /login but instead I get http://localhost/Account/Login?ReturnUrl=%2Fhome%2Findex

我配置的cookie认证路径如下:

services.Configure<CookieAuthenticationOptions>(opt =>
{
opt.LoginPath = new PathString("/login");
});

我添加了一个默认过滤器,以确保默认情况下所有 url 都需要身份验证。

services.AddMvc(
options =>
{
options.Filters.Add(new AuthorizeFilter(new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build()));
});

我检查过 url /login 确实加载了登录页面,而 /account/login 没有,正如预期的那样。

编辑:我保留了原样的路由(除了更改默认 Controller 和操作)

app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Site}/{action=Site}/{id?}");
});

最佳答案

随着 asp.net core 2.0 的推出,这已经变成了:

services.ConfigureApplicationCookie(options => options.LoginPath = "/Account/LogIn");

更多关于 migrating to 2.0 here .和 even more information关于从 2.0 迁移到 2.1。

关于c# - ASP.NET 核心,更改未经授权的默认重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42105434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com