gpt4 book ai didi

breeze - 使用 Breeze 使用 Web API 进行表单例份验证

转载 作者:行者123 更新时间:2023-12-01 02:28:49 28 4
gpt4 key购买 nike

我正在使用表单例份验证保护 WebAPI,即使用 Breezecontroller
当我尝试调用 WebAPi 方法时,我得到了以下错误。

状态:404
状态文本:“未找到”
消息:“元数据查询失败:'';,未找到匹配的 Http 资源...

我的问题是为什么我没有回复“未经授权的错误(401)”?
元数据也用 [Authorize] 修饰。

似乎 FormsAuthentication 的重定向出现了问题。
它正在重定向到 Login(has AllowAnonymous) WebApi 方法并报告它找不到,即使我有。我也将Authrozie应用于方法而不是 Controller 。确切的错误是

  {"$id":"1","$type":"System.Web.Http.HttpError,System.Web.Http","Message":"NoHTTPresourcewasfoundthatmatchestherequestURI'http://localhost:40678/api/Country/Login?ReturnUrl=/api/Country/Metadata'.","MessageDetail":"Noactionwasfoundonthecontroller'Country'thatmatchestherequest."}

最佳答案

刚刚尝试过并且工作正常。我打赌你的网址有误。

这是我的 Controller 的前奏:

[授权]
[ Breeze Controller ]
公共(public)类 BreezeTodoController : ApiController
{
私有(private)只读 BreezeTodoContext _context;

公共(public) BreezeTodoController() {
_context = new BreezeTodoContext(User);
}

[HttpGet]
公共(public)字符串元数据(){
返回 _context.Metadata();
}
//... 更多的

我用这个网址打了它

http://localhost:32377/api/breezetodox/元数据

我拿回了 401

请求网址:http://localhost:32377/api/breezetodo/metadata
请求方法:GET
状态码:401 未授权

但是,如果我在 URL 中犯了错误(请参阅breasttodo 后的“x”)

请求网址:http://localhost:32377/api/breezetodox/metadata
请求方法:GET
状态码:404 未找到

如果我的操作名称不匹配,则相同(请参阅元数据后的“x”):

请求网址:http://localhost:32377/api/breezetodo/metadatax
请求方法:GET
状态码:404 未找到

换句话说,如果 HTTP 一开始就找不到该资源,它就不能报告该资源是未经授权的。

关于breeze - 使用 Breeze 使用 Web API 进行表单例份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14403793/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com