我有一个在本地运行的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();
}
}
[...]
答案 0 :(得分:0)
我认为你的问题不在于Authorize属性,而是更有可能是路由。
如果您尝试使用“授权”属性访问控制器或操作但未获得授权,则应仅看到空白页。你可以通过从有问题的页面中删除授权属性来验证这一点,我敢打赌你仍会得到同样的错误。