AngularJs -.net MVC WebApi身份验证示例
我有一个.Net MVC WebApi应用程序,并尝试在
Angularjs中专门编写前端.我能够通过json获取数据并对其进行操作,但我现在需要保护数据并将Base64身份验证添加到服务器的标头中.当我浏览一些我的.net视图测试页面时,我得到了相应的登录框,询问用户/通行证,以便我可以继续获取json.
我不知道该怎么做是在我的$资源中设置角度的标题中传递此信息(用户/通行证).有没有完整的例子可以更好地告诉我如何做到这一点?我知道它涉及cookie并使用服务器传回的令牌,但我不知道如何将各个部分放在一起. 当我把所有这些结合在一起时,我希望通过所有层(DAL,RESTFUL,控制台测试层)发布一个完整的骨架示例. 所以问题是 – 在使用AngularJS $资源时,如何将身份验证信息插入客户端的标头中? 谢谢
如果你在服务器端的头部放一个cookie,AngularJS将一直发送这个cookie.你无事可做.
如果你想在Header中传递令牌而不是在Angular端的cxookie中传递令牌,请执行以下操作:$httpProvider.defaults.headers.common [‘X-Auth’] = yourKey;在您的配置块中. 然后,如果您想知道用户是否已登录,或者他是否拥有权限,则只需实现拦截器.这是一个简单的工厂,你会在你的配置块中推送响应者. 该工厂将监听来自服务器的每个响应,并且在他的实现中,您将检查错误情况下响应的状态代码: 401 – >没有记录 工厂的例子: myModule.factory('myHttpInterceptor',function ($q) { return function (promise) { return promise.then(function (response) { // do something on success return response; },function (response) { // do something on error //check status 401 or 403 return $q.reject(response); }); }; }); 然后把你的工厂放在你的con fig块中的http responseIntercetors中: myModule.config(function ($httpProvider) { $httpProvider.responseInterceptors.push('myHttpInterceptor'); }); 请记住,AngularJS 1.1.4中不推荐使用此解决方案(仍然不稳定)…… 工厂必须有所不同,请参阅这篇文章了解更多信息:AngularJS Intercept all $http JSON responses 希望能帮助到你 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |