通过《EnableCorsAttribute特性背后的故事》我们知道:由CorsPolicyProvider提供的CorsPolicy表示目标Action采用的资源授权策略,ASP.NET Web API最终需要利用它对具体的跨域资源请求实施授权检验并生成相应的CORS响应报头。在ASP.NET Web API的应用编程接口中,资源授权检验的结果通过类型CorsResult来表示。
CorsResult定义在命名空间“System.Web.Cors”下,表示资源提供者针对具体跨域资源请求进行授权检验得到的结果,最终写入响应的CORS报头均通过此对象来生成。如下面的代码片断所示,CorsResult依然具有与6个CORS响应报头对应的属性,通过其方法ToResponseHeaders方法的字典表示由此6个属性生成的CORS相应报头,字典对象的Key和Value分别表示报头名称和值。
class CorsResult
2: {
string AllowedOrigin { get; set; }
string> AllowedExposedHeaders { get; }
string> AllowedHeaders { get; }
string> AllowedMethods { get; }
long? PreflightMaxAge { get; set; }
bool SupportsCredentials { get; set; }
9:
string> ErrorMessages { get; }
bool IsValid { get; }
12:
string> ToResponseHeaders();
14: }