C# DnnApiController为非超级用户返回401
我有一个Dotnetnuke模块,它使用angular.js作为客户端,使用WebApi作为服务器端: 这是我的控制器:C# DnnApiController为非超级用户返回401,c#,angularjs,asp.net-web-api,dotnetnuke,C#,Angularjs,Asp.net Web Api,Dotnetnuke,我有一个Dotnetnuke模块,它使用angular.js作为客户端,使用WebApi作为服务器端: 这是我的控制器: public class AppController:DnnApiController { [HttpGet] public IEnumerable<LinkInfo> GetLinks() { return AppInitializerBase.GetLinks();
public class AppController:DnnApiController
{
[HttpGet]
public IEnumerable<LinkInfo> GetLinks()
{
return AppInitializerBase.GetLinks();
}
}
但我还是拿到了401。
知道为什么它不能与非超级用户一起使用吗?如果你调试javascript来设置config.headers,你有tabId和moduleId吗?@DotNetNuclear是的,tabId和moduleId都设置好了。我甚至检查了我请求的头,所有的头都设置好了尝试将[AllowAnonymous]添加到GetLinks webapi控制器方法中。这应该可以摆脱401计划。测试完成后,将路由代码添加到问题中,这样我们可以确保路由上的模块文件夹名称与您在客户端sf对象上初始化的名称匹配。然后可以使用支持的模块保护api。
config.headers = {
'ModuleId': sf.getModuleId(),
'TabId': sf.getTabId(),
'RequestVerificationToken': sf.getAntiForgeryValue()
};