如何保护ASP.NET Web API 2

4

我需要实现 ASP.NET Web API 2 ,即:

[RoutePrefix("orders")] 
public class OrdersController : ApiController 
{ 
    [Route("{id}")] 
    public Order Get(int id) { } 
    [Route("{id}/approve")] 
    public Order Approve(int id) { } 
} 

我想知道如何保护它?

例如,我们可以使用ASP.NET身份验证吗?

有什么线索吗?

2个回答

5

您可以在类上添加[Authorize]属性,然后通过标头发送基本身份验证信息。


好的!你能提供一下如何通过头部发送基本认证信息的示例吗?另外,这应该是ASP .NET身份验证数据库吗? - NoWar
1
@ClarkKent,这里有一个构建标题的示例。还有就是基本的ASP.NET用户数据库。 - Mike Perrenoud
2
在SimpleSecurity项目中,有一个使用ASP.NET Identity进行基本身份验证的完整示例和源代码。请查看参考应用程序以获取示例。https://simplesecurity.codeplex.com/SourceControl/latest#AspNetIdentity/SimpleSecurity.AspNetIdentity.Filters/BasicAuthorizeAttribute.cs - Kevin Junghans
@KevinJunghans 谢谢!请把它放在答案里。至少我会+1,因为它有“如何将基本身份验证添加到Web API的” https://simplesecurity.codeplex.com/ - NoWar

2
您可以使用ASP.NET Identity创建自定义AuthorizeAttribute,处理您的Web API的基本身份验证。在SimpleSecurity项目中有一个完整的示例,展示了如何使用ASP.NET Identity进行基本身份验证,并提供了源代码。您可以在这里找到自定义AuthorizeAttribute的源代码请参考参考应用程序以获取如何使用它的示例。客户端代码的源代码在此处这里有一个讨论如何在Web API中实现基本认证的文章。虽然这篇文章提到了SimpleMembership,但相同的原则也适用于使用ASP.NET Identity的实现。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接