我想用
AuthorizeAttribute
对于我的Web API方法。
但当用户未被授权时,方法返回登录视图,而不是简单的401状态代码。
启动.cs:
public void ConfigureServices(IServiceCollection services)
{
// Another code.
services.AddDefaultIdentity<User>(opt => {})
.AddEntityFrameworkStores<MyDbContext>();
// Another code.
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// Another code.
app.UseAuthentication();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "api/{controller}/{action=Index}/{id?}");
});
app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment())
{
spa.UseReactDevelopmentServer(npmScript: "start");
}
});
// Another code.
}
单工控制器.cs:
[Route("api/[controller]")]
public class SimpleController : Controller
{
[Authorize]
[HttpGet("{id}")]
public int Index(int Id)
{
return Id;
}
}
在ASP.NET MVC 5中,我们都有
授权属性
:
-
System.Web.Http.AuthorizeAttribute
-用于Web API。
-
System.Web.Mvc.AuthorizeAttribute
-用于有视图的控制器。
但是,ASP.NET核心2.0只有一种属性——用于具有视图的控制器。
我需要做什么才能获得状态代码(401,403)而不是视图?