ASP.NET核心 - 发布应用程序时找不到具有`[Authorize]`属性的页面

时间:2017-06-02 18:27:33

标签: c# asp.net-core-mvc core authorize

我有一个在本地运行的ASP.NET核心应用程序,我可以使用[Authorize]属性访问页面。但是,当我将应用程序发布到服务器时,我无法再访问使用[Authorize]适当性的页面。我收到以下错误:无法找到此页面。没有[Authorize]属性的其他页面正常工作。

编辑:我发现我的应用程序在我的发布版本上出错了。当我发布时,我猜测我的SignInManager无法正常工作..我该如何配置?

这是我服务的代码。

public class IdentityAuthenticationService : IAuthenticationService
{
    private UserManager<IdentityApplicationUser> userManager;
    private SignInManager<IdentityApplicationUser> signInManager;
    private RoleManager<IdentityRole> roleManager;

    public IdentityAuthenticationService
    (
        UserManager<IdentityApplicationUser> userManager, 
        SignInManager<IdentityApplicationUser> signInManager,
        RoleManager<IdentityRole> roleManager
    )
    {
        this.userManager = userManager;
        this.signInManager = signInManager;
        this.roleManager = roleManager;
    }

    public async Task LoginAsync(string username, string password)
    {
        //This line is where the error comes from
        var result = await signInManager.PasswordSignInAsync(username, password, isPersistent: false, lockoutOnFailure: false);
        if (!result.Succeeded) {
            throw new InvalidLoginException();
        }
    }
    [...]

1 个答案:

答案 0 :(得分:0)

我认为你的问题不在于Authorize属性,而是更有可能是路由。

如果您尝试使用“授权”属性访问控制器或操作但未获得授权,则应仅看到空白页。你可以通过从有问题的页面中删除授权属性来验证这一点,我敢打赌你仍会得到同样的错误。