【发布时间】:2016-10-21 05:45:30
【问题描述】:
我对我目前的工作非常陌生。我可能解释得不好,但就我所知,我想把我的理解放在同样的地方。
我正在为 web api 使用基于 Owin 令牌的身份验证,对于登录,我正在调用返回访问令牌的令牌方法。我想知道如何保护我们的 web api,以便在没有访问令牌的情况下不允许调用 web api 方法。我正在使用 angular js 资源,我相信我们需要在 angularjs 服务部分定义标头,但是我不知道在哪里以及如何确切地知道,任何人都可以帮我解决这个问题。
例子:-
这是我用 angularjs 编写的服务,
sghServices.factory('GlobalSettingsService', function ($resource) {
return $resource("../Api/eClaim/SecondGlobalSettings",
{},
{
post: {
method: 'POST', isArray: false,
headers: { 'Content-Type': 'application/json' }
},
update: {
method: 'PUT'
}
});
});
这是web api方法
[Authorize]
[Route("~/Api/eClaim/GlobalSettings")]
[HttpGet]
public ReportAndeCliam GetGlobalSettings()
{
//Code Wriiten here
}
到目前为止,我可以在没有访问令牌的情况下访问 web api,如果令牌不可用,我想以这样的方式进行设计,它不应该允许使用 [Authorized] web api 方法。
在此先感谢 :)
【问题讨论】:
-
您可以在 MVC API 代码中进行过滤,以从标头检查安全密钥。
-
正如我在一个例子中看到的,一旦我们在方法上使用了 [Authorize] 属性,它使 web api 方法安全,它不会让我们允许在没有的情况下调用 web api 方法访问令牌。如果我的理解有误,请纠正我。
-
是的,你是对的。我更新了我的答案。看看吧。
-
自己生成token吗?
标签: angularjs asp.net-mvc asp.net-web-api2 single-page-application