【发布时间】:2016-01-22 23:36:56
【问题描述】:
我只是 .NET 世界的初学者,我已经创建了一个 web api (.NET 4.5.2),我正在使用我的控制器上方的注释 [Authorize],如下所示:
[Authorize]
public class PhasesController : ApiController
{
private TestReportEntities db = new TestReportEntities();
// GET: api/Phases
public IQueryable<Phase> GetPhase()
{
return db.Phase;
}
}
我已经创建了我的数据库,并且我正在使用 web.api 用于管理访问的默认表,正如您在这张图片中看到的那样:
我已经在另一个项目/解决方案中完成了向我的 web api 请求的方法,当我从我的 web api 控制器中删除注释 [Authorize] 时它工作正常。
这是一个关于我如何请求我的 api 的示例:
public int GetCurrentIdPhase(int idProject)
{
int phaseId = -1;
WebRequest request = WebRequest.Create(string.Concat(URL, string.Format("api/phases/?idProject={0}", idProject)));
using (var resp = (HttpWebResponse)request.GetResponse())
{
using (var reader = new StreamReader(resp.GetResponseStream()))
{
string objText = reader.ReadToEnd();
var phase = JsonConvert.DeserializeObject<List<Phase>>(objText);
phaseId = phase[0].id;
}
}
if (phaseId != -1)
{
return phaseId;
}
else
{
throw new Exception("Phase not found");
}
}
最后我的问题是:
- 如何使用上面的示例向我的 api (POST - www.myApi/token) 请求令牌?
- 获得令牌后,如何在对 API 的每个请求中使用令牌?
如果你能帮助我,我将不胜感激。
谢谢。
【问题讨论】:
-
asp.net/web-api/overview/security/… 该页面的 ToC 中也有很多文章
-
这个答案也可能有帮助:stackoverflow.com/a/12525250/264607
标签: asp.net asp.net-web-api authorize