我正在try 重定向到ASP中的其他登录url.净MVC6

我的帐户控制器登录方法有一个Route属性来更改url.

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

当我试图访问一个不受限制的页面时,我被重定向到无效的url,它应该只有/login,但我得到了

我已将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没有加载,这与预期的一样.

edit:我保留了路由(除了更改默认控制器和操作)

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

推荐答案

如果选中UseIdentity扩展方法here,您会注意到它使用的是IdentityOptions而不是CookieAuthenticationOptions,因此您必须配置IdentityOptions:

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

Edit

对于asp.net core 2.0:

Asp.net相关问答推荐

Windows 命令行中的/p:是什么意思

在 Web.Config 中模拟标签

如何在现有数据库中创建 ASP.Net Identity 表?

你能从请求变量中确定时区吗?

使用 C# 和 ASP.NET 从 Gmail/Hotmail/Yahoo 导入通讯簿

ASP.NET MVC4 jquery/javascript 包的使用

IIS 6.0 通配符映射基准?

无法复制文件.访问路径被拒绝

如何获取 ActionLink 的工具提示?

使用 JObject 所需的库名称是什么?

跟踪点有什么用途?

asp.net 有控制台日志(log)吗?

DropDownList AppendDataBoundItems(第一项为空白且无重复项)

如何使div按钮提交其所在的表单?

asp.net 网站上的第一页加载缓慢

在 Asp.Net Core 中动态更改连接字符串

使 WCF Web 服务与 GET 请求一起工作

System.Linq.IQueryable 不包含Where的定义

try 为 Medium Trust 开发是否会失败?

System.Drawing.Image.FromFile() 上的内存不足异常