我正在使用asp.core 2.1创建Web API 我有一个像这样的控制器
[Route("api")]
[ApiController]
public class LessonController : ControllerBase
{
[HttpGet]
[Route("lessons/{id}")]
[Authorize(Roles = "Teacher")]
public async Task<IActionResult> GetLesson(int id)
{
//....
}
}
使用[Authorize]
属性,我是否仅收到以下错误?
The default Identity UI layout requires a partial view '_LoginPartial' usually located at '/Pages/_LoginPartial' or....
由于这是一个API,我很困惑为什么在错误中它正在寻找局部视图?
答案 0 :(得分:1)
您引用的错误消息来自ASP.NET Core Identity的默认UI(特别是在_Layout.cshtml
页here中)。在Startup.ConfigureServices
中使用以下任一选项时,将使用默认UI:
services.AddDefaultIdentity<User, Role>()
...
-或-
services.AddIdentity<User, Role>()
.AddDefaultUI()
...
如果您不想使用默认UI,则需要避免使用AddDefaultIdentity
和AddDefaultUI
,而只需使用AddIdentity<User, Role>
。