ASP.NET Web API自带的身份验证怎么能通过?

新建项目时选择个人身份验证,添加model后创建Web API2 controller using Entity Framework.生成Controller后添加身份验证,代码如下:

[Authorize]
        // GET: api/Information
        public IQueryable<Information> GetInformations()
        {
            return db.Informations;
        }

用postman发送请求获取信息,选择basic auth,输入已经注册好的username和password并发送。得到回复:"Message": "Authorization has been denied for this request."
请问是哪里做错了吗?
测试post,设置Name默认值为用户ID,只上传Detail的数据。添加用户名和密码并发送post请求,结果无法获取用户ID。
图片说明

3个回答

首先 ASP.NET 默认不支持 Http Basic Auth,默认支持 Cookie Authentication(ASP.NET Core 基于CookieAuthenticationMiddleware)。
所以你是否使用的相应的第三方 Basic Auth 并启用或者自己已经写了 Basic Auth 相关的认证模块。

roczj
公主的卫兵 回复weixin_39017744: 实在不行可以将指定域下的所有 Cookie 都加到 Postman 中就可以了,如果要使用 Basic Auth,可以参考 https://github.com/blowdart/idunno.Authentication/tree/master/src/idunno.Authentication.Basic
9 个月之前 回复
weixin_39017744
weixin_39017744 这是asp.net web application,不带core的
9 个月之前 回复
roczj
公主的卫兵 回复weixin_39017744: 默认应为 .AspNetCore 开头的 Cookie
9 个月之前 回复
weixin_39017744
weixin_39017744 具体哪一项cookie呢?是不是带token那个
9 个月之前 回复
roczj
公主的卫兵 回复weixin_39017744: 如果不使用 Basic Auth,可以先在浏览器中登录然后再将浏览器中的相应的 Cookie 内容增加到 Postman 的请求中也行。
9 个月之前 回复
roczj
公主的卫兵 回复weixin_39017744: 基于 ASP.NET Core 可以参考 https://github.com/blowdart/idunno.Authentication
9 个月之前 回复
weixin_39017744
weixin_39017744 可以说下具体做法么?
9 个月之前 回复
roczj
公主的卫兵 回复weixin_39017744: 直接生成的自带个人身份认证就只使用 Cookie Authentication,所以不支持 HTTP Basic Auth。
9 个月之前 回复
weixin_39017744
weixin_39017744 没有写,生成项目的时候用的自带的个人身份验证。
9 个月之前 回复

你需要在http请求头上增加
Authorization: Basic 后面是你用户名和密码的base64编码

weixin_45055155
weixin_45055155 你需要在http请求头上增加 Authorization: Basic 后面是你用户名和密码的base64编码
9 个月之前 回复
weixin_39017744
weixin_39017744 我打开postman的headers,其中temporary headers有自动添加的KEY: Authorization和Value: Basic cXFxQHFxcS5jb206MTIzUXdlYA==。这个不能用吗?
9 个月之前 回复

你需要在http请求头上增加
Authorization: Basic 后面是你用户名和密码的base64编码你需要在http请求头上增加
Authorization: Basic 后面是你用户名和密码的base64编码

weixin_39017744
weixin_39017744 我在上面的headers加入了KEY:Authorization: Basic然后Value写:cXFxQHFxcS5jb206MTIzUXdlYA==,返回的是Could not get any response
9 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问