2016-05-27 106 views
0

新鮮出爐的c sharp,visual studio和web api。 (來自java)。web api屬性標記如何工作​​

反正我正在玩視覺工作室的web api。在ValuesControler類中,我注意到它在類的頂部設置了一些屬性,所以無論何時瀏覽器向api/values發出請求,都需要首先授權。

但究竟屬性是什麼?

[Authorize] 
public class ValuesController : ApiController 
{ 
    // GET api/values 
    public IEnumerable<string> Get() 
    { 
     return new string[] { "value1", "value2" }; 
    } 
} 

我還發現路由屬性,但我不能找到到底是什麼屬性的任何信息以及它是如何得到讀取或程序的理解。

回答

1

在C#Attributes provide a powerful method of associating declarative information with C# code (types, methods, properties, and so forth). Once associated with a program entity, the attribute can be queried at run time and used in any number of ways.

對於授權屬性檢出

Authentication and Authorization in ASP.NET Web API

使用[授權]屬性

網絡API提供了一個內置的授權濾波器,AuthorizeAttribute。 此篩選器檢查用戶是否通過身份驗證。如果不是,則 返回HTTP狀態代碼401(未授權),而不調用 操作。

對於屬性路由退房

Attribute Routing in ASP.NET Web API 2

路由是網絡API的一個URI相匹配的作用。 Web API 2支持 一種新的路由類型,稱爲屬性路由。顧名思義, 屬性路由使用屬性來定義路由。屬性路由 可讓您更好地控制Web API中的URI。例如,您可以輕鬆創建描述資源層次結構的URI。

+0

是的,我已經讀過那頁,我知道如何使用它。我所要求的是「我無法找到屬性標籤到底是什麼,以及它如何被程序讀取或理解」。例如:它是一個對象,它是一個變量,它是什麼? – user308553

+2

OP也可能會發現這個鏈接有用:http://stackoverflow.com/questions/21004932/when-are-method-attributes-evaluated –

+1

屬性基本上是類的元數據。該框架將在執行其功能時通過反射來使用這些信息。 – Nkosi