我有两个控制器;
AccountController : Controller //For accounts <-- MVC
ItemController : ApiController //For Items <-- WEB API
从所有意图和目的来看,accounts 控制器都是 Accounts 代码的一个非常标准的实现,唯一的主要区别是它使用了 Custom MembershipProvider。在帐户控制器上,我还有另一项操作:
[Authorize]
public ActionResult Bleh(){ return View(); }
如果我尝试到达:
http://localhost/Account/Bleh
将我(如预期)重定向到登录页面,登录后,我返回到 Bleh 页面。都好。问题出在 ItemController 上,我有一个 Action,上面也有 Authorize 属性:
[Authorize]
public HttpResponseMessage PostItem(Item item) { /**/ }
在登录之前转到此返回 401 - Unauthorized - 这再次符合预期,但在登录后,它仍然返回 401。我不明白为什么会这样。
我是否缺少任何配置元素?路由?NE 其他?
我的印象是 Web Api 会以与 MVC 相同的方式获取表单身份验证,并且我知道身份验证正在像 MVC 一样工作。