未达到“授权失败”页面

时间:2018-03-29 08:42:08

标签: asp.net-core-2.0

我很遗憾地问这样一个基本问题,但它让我疯了。 我有一个asp net core 2应用程序,它使用标准授权过程(通过EF和使用MySQL数据库)。一切正常 - 整个登录过程和后续路由 - 直到我用一个对特定控制器没有足够权限的用户进行测试。我在ConfigureServices中有以下内容:

services.ConfigureApplicationCookie (options => {
    options.LoginPath = new PathString ("/Account/LogIn");
    options.AccessDeniedPath = new PathString ("/Account/AccessDenied");
});

控制器(类AccountController)如下:

[AllowAnonymous]
public IActionResult AccessDenied (string returnUrl)
{
    ViewBag.PageHeading = "Authorisation Problem";
    return View ();
}

登录工作正常但是,当调用受保护的控制器时,浏览器会显示它正在查找http://localhost:55800/Account/AccessDenied?ReturnUrl=%2F但未到达控制器并返回404。

我尝试过多种路由组合 - 属性和全局,还有'returnUrl'大写但没有。问题似乎是路由系统期望GET中的第一个参数前面带有'/',后面的参数跟在'?'之后。但是,此URL会自动生成。

我错过了一些基本的东西吗?我将非常感谢您对此的任何帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

飞象!

我刚刚找到了完成这项工作的路线{controller=Account}/{action=Login}/{*parms}