【问题标题】:mvc4 webapi vs controller security (authentication and authorization)mvc4 webapi vs 控制器安全性(身份验证和授权)
【发布时间】:2012-05-09 09:40:36
【问题描述】:

我对 asp.net mvc webapi 技术还很陌生。

场景: 我正在为企业设计一个 mvc Web 应用程序。我知道 MVC 控制器可以通过安全属性进行授权和身份验证。

该网络应用程序显示了家庭用水量的各种趋势。我们的愿景是让这些数据可以通过移动设备、平板电脑(你可以命名)访问。

我想知道 WebAPI 是否会比控制器更好,以便许多设备可以使用相同的 API。

问题: 我对 webapi 的问题是安全性。在网络应用程序上,一旦用户登录控制器就知道用户的安全配置文件等。如果是设备,安全将如何工作?是否所有客户端都必须通过凭据,如果是在服务器上如何处理安全性?我们应该创建一个服务帐户并提供给每个客户吗?

谢谢,不知道我解释的好不好。

【问题讨论】:

  • 您是在创建 api 还是 Web 应用程序?您说您将创建一个 mvc Web 应用程序。如果是这种情况,那么请设计您的网站,以便可以通过移动设备查看。安全和授权不是问题。
  • 感谢@c0deNinja,是的,我正在创建 Web 应用程序。但不介意使用 JQuery 调用 WebAPI。
  • 您还有问题吗?正如 Myagdi 所说,在不同设备视图的情况下考虑安全性真的不是问题。并且属性不是唯一在 WebApi 中管理安全性的,我更喜欢 DelegatingHandler whick 更有可能使用 IOC。

标签: asp.net-mvc-4 asp.net-web-api


【解决方案1】:

MVC 安全是标准ASP.Net Authentication/Authorization 的覆盖。 AuthorizeAttribute 表示用户必须经过身份验证才能访问此资源。它查看 User IPrincipal 的 IsAuthenticated 和 Roles

因此,这将成为一种 ASP.NET 身份验证解决方案。

用户身份验证 - 直接使用第一篇文章中提到的任何方法。

设备身份验证 - 对此没有通用答案,也没有真正安全的设备身份验证方式。您可以通过在 URL 或 HTTP 标头中传递唯一数据(设备序列号)来识别设备。

【讨论】:

    猜你喜欢
    • 2012-06-20
    • 2017-06-04
    • 2012-12-23
    • 2011-10-24
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    相关资源
    最近更新 更多