我只是.NET世界的初学者,我创建了一个web api(.NET 4.5.2),我使用上面的注释[Authorize]如控制器如下图所示:如何使用安全的Rest Rest MVC web api
[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 /令牌)使用上面的例子?
- 如何在我的API的每个请求中使用该令牌?
如果你能帮助我,我会非常感激。
谢谢。
http://www.asp.net/web-api/overview/security/authentication-and-authorization-in-aspnet-web-api 从该页面的ToC中还有很多文章 – BlackICE
This答案也可以帮助:http:// stackoverflow。com/a/12525250/264607 – BlackICE