Muh*_*hid 2 security rest asp.net-web-api
我刚刚使用apicontroller创建了我的第一个休息服务.我使用它与Web表单而不是mvc-4.我如何在Web服务中实现安全性.请记住,除浏览器之外的客户端可能会使用服务如何设置安全性.当我们从浏览器对使用表单身份验证的asp.net应用程序进行身份验证时,应用程序会返回一个身份验证cookie,在每个后续请求中由浏览器转发,并且应用程序通过解密cookie知道用户已登录.
我正在观看关于web api安全性的多元视觉教程.他们主张我们应该只有一个方法可以在传递json数据时登录用户.登录后,该方法将auth cookie返回给客户端(浏览器和其他服务客户端),客户端应在每个后续请求上发送此cookie以授权自己.这个身份验证方案对于Web服务是否正常还是有其他推荐的方法?问题更多的是关于实施什么而不是如何实施?
编辑:我从@ AliOstad得到的这个问题的答案是我应该为我的服务创建一个单独的登录方法,理想情况下应该在https上工作,这个方法应该返回一个加密的auth标头,包括用户的电子邮件和发布时间.一旦客户端获得了令牌,他就可以通过在auth头中传递此令牌(到andriod app等)来继续使用该服务.如果数据服务(与应该在https上工作的登录服务相对),我认为没有问题.因为令牌将在x分钟后过期,因此在http上运行.在服务器端它完全可以,但我的客户如何知道他的令牌已经过期,他需要在从数据服务获取数据之前获得另一个令牌?我的第二个问题是,如果我以这种方式实现它,我将如何处理由asp.net应用程序(asp.net应用程序和web api在同一应用程序上运行)对数据服务的ajax调用.有(在javascript中),我要么需要身份验证令牌或用户名和密码来获取身份验证令牌,它们似乎都不可行?
任何想法我应该如何处理这些情况?
Dominick Baier是这个主题的权威,并在他的博客中有关于这个主题的系列文章.见第一个系列在这里.
我无法用一个明智的小答案来总结,我认为你需要通过这些帖子.
我的客户如何知道他的令牌已经过期
与表单身份验证不同,当用户具有过期令牌并重定向到登录屏幕时,Web API会与HTTP响应代码进行通信 - 因为客户端很可能不是人类用户.
因此客户端代理不知道它是否具有过期令牌,而是当它使用其过期令牌连接您的API时,将返回401(未授权)响应.此时,客户端将尝试获取新令牌.
我将如何处理由asp.net应用程序生成的数据服务的ajax调用
他们不会进行AJAX调用,他们会:
| 归档时间: |
|
| 查看次数: |
2455 次 |
| 最近记录: |