使用自定义控制器进行匿名身份验证

时间:2021-07-22 02:04:31

标签: acumatica

我正在尝试在 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 控制器上允许匿名身份验证我缺少什么?

谢谢

1 个答案:

答案 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());
    }
}
相关问题