我正在尝试在 Acumatica 中实现一个自定义控制器以用于开发目的。但我似乎无法弄清楚如何回避 Acumatica 身份验证并允许无需身份验证的访问。
这是我的控制器:
https://www.acumatica.com/blog/using-asp-net-web-api-mvc-with-acumatica/
[RoutePrefix("test")]
public class TestController: ApiController
{
[HttpGet]
[Route()]
[AllowAnonymous]
public IHttpActionResult PerformAction()
{
return Ok("Actions Available");
}
}
这是我的启动
public class Startup
{
public static void Configuration(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
}
}
public class ServiceRegistration : Module
{
protected override void Load(ContainerBuilder builder)
{
GlobalConfiguration.Configure(Startup.Configuration);
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
}
}
但是当我在 Postman 中向 {baseUrl}/test 发送 GET 时,它返回 401 未经授权。如果我打开浏览器,登录并转到同一条路线,我会收到“可用操作”
在自定义 WebApi 控制器上允许匿名身份验证我缺少什么?
谢谢
答案 0 :(得分:1)
可以在扩展库中的 Autofac 模块内自定义授权。参考 PX.Export、PX.Hosting(这是为 2021R1 做的)
public class Startup
{
public static void Configuration(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
}
}
public class ServiceRegistration : Module
{
protected override void Load(ContainerBuilder builder)
{
GlobalConfiguration.Configure(Startup.Configuration);
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
// Configuration of Authorize here
builder.Configure<AuthenticationManagerOptions>(options =>
options.AddLocation("sourcecontrol").WithAnonymous());
}
}