【发布时间】:2012-12-25 03:48:31
【问题描述】:
如何使用 asp.net-web-api 实现授权? asp.net-mvc授权和asp.net-web-api授权有多少区别?
【问题讨论】:
标签: asp.net asp.net-mvc authorization asp.net-web-api
如何使用 asp.net-web-api 实现授权? asp.net-mvc授权和asp.net-web-api授权有多少区别?
【问题讨论】:
标签: asp.net asp.net-mvc authorization asp.net-web-api
您应该首先将授权和身份验证逻辑分开。您可以通过消息处理程序以与主机无关的方式执行身份验证,并通过操作过滤器执行授权。
查看PingYourPackage 项目,它是一个示例 ASP.NET Web API 应用程序。你可以在那里看到basic authentication message handler。如果请求经过身份验证,此处理程序会为请求设置 Thread.CurrentPrincipal。
另外,看看使用AuthorizaAttribute 来执行授权的控制器。 AuthorizaAttribute 检查Thread.CurrentPrincipal 以执行授权。
【讨论】:
在 MVC 中,您只需在控制器方法或类上方添加 [Authorize] 即可控制受保护的页面。或者为了防止伪造,您可以在视图和控制器中使用[ValidateAntiForgeryToken]。它将使用 MachineKeys 来评估相关用户。 Asp.net Web API 和 MVC 平台之间没有区别。但是 MVC 平台和网页之间存在一些差异。你也可以employ Authorization in the Web.config file。
【讨论】: