Angularjs 如何通过URL验证Web Api 2 Owin令牌发送?

Angularjs 如何通过URL验证Web Api 2 Owin令牌发送?,angularjs,cordova,asp.net-web-api,owin,Angularjs,Cordova,Asp.net Web Api,Owin,TL;DR版本 我的Cordova AngularJS应用程序有一个情况,我需要打开浏览器并提出请求。但我发现我无法发送此请购单的标题,因为$window不接受它们。但我可以用URL发送。 如何验证通过Web API上的URL接收的令牌 详细版本 我正在使用AngularJs和ngCordova构建一个Cordova应用程序。在过去的几天里,我试图下载一个PDF文件,让用户可以随时阅读。但我所能做到的就是在后台使用CordovaFileTransfer下载它,而不使用Android下载管理器,并

TL;DR版本 我的Cordova AngularJS应用程序有一个情况,我需要打开浏览器并提出请求。但我发现我无法发送此请购单的标题,因为$window不接受它们。但我可以用URL发送。 如何验证通过Web API上的URL接收的令牌

详细版本

我正在使用AngularJs和ngCordova构建一个Cordova应用程序。在过去的几天里,我试图下载一个PDF文件,让用户可以随时阅读。但我所能做到的就是在后台使用CordovaFileTransfer下载它,而不使用Android下载管理器,并通过文件浏览器应用程序访问它,因为文件没有出现在传统的下载文件夹/应用程序上,这对我不好。我很高兴收到任何关于这方面的建议

所以我决定尝试另一种方法。使用CordovaInAppBrowser,我成功下载了我的文件,但没有任何授权令牌,因为插件不支持任何标题

如果我能在URL上发送有效的令牌,CordovaInAppBrowser就可以正常工作了。但我不知道如何在WebAPI上手动验证它。我已经找到了这两个页面,其中有关于这方面的信息,但我无法理解它在我的应用程序中使用


有人能给我指出正确的方向吗?

无论您想从标题还是从URL查询字符串中提取令牌,原理都是一样的;您需要从请求中提取数据以验证令牌

我使用了两种方法,具体取决于您希望在何处执行此操作

第一种方法是通过覆盖AuthorizeAttribute甚至是纯ActionFilterAttribute来创建自定义属性。关于这个主题有很多资源,但是你可以找到一些信息和建议。如果您不想在所有API方法和API控制器上执行此操作,则此方法非常有效。您只需将自定义属性放在需要的位置

第二种方法是创建自定义OWIN中间件。你可以找到很多关于如何做到这一点的资源。这种方法更加集中,因为所有API调用都会通过它