2014-11-25 25 views
3

我正在研究包含MVC和WEB API的ASP.NET Web应用程序。任何人都可以给我一个如何在Web API中使用ApiController.Unauthorized方法的例子。我不确定我应该将哪种参数传递给此方法。WEB API 2.2:ApiController未经授权的方法

+0

你想实现身份验证? – Sandeep 2014-11-25 11:19:38

+0

嗨Sandeep。是的,我确实想实现身份验证,但不想编写自定义身份验证筛选器。 – Dean 2014-11-26 22:03:17

+0

您可以创建用于身份验证的消息处理程序。 http://www.c-sharpcorner.com/UploadFile/dacca2/basic-authentication-in-web-api-based-on-user-role/ – Sandeep 2014-11-27 05:28:35

回答

3

如果您的控制器操作方法返回IHttpActionResult那么您可以使用此方法作为返回类型。

return Unauthorized(); 

还可以传递AuthenticationHeaderValue作为此方法表示在授权ProxyAuthorization,WWW-Authneticate,和Proxy-Authenticate头值的认证信息的参数。

如果您的操作方法没有返回IHttpActionResult,那么您可以将HttpResponseException丢在控制器操作的任何地方。

throw new HttpResponseException(HttpStatusCode.Unauthorized); 

如果你想通过自定义消息,然后使用

var msg = new HttpResponseMessage(HttpStatusCode.Unauthorized) 
{ 
    ReasonPhrase = "Your message!" 
}; 
throw new HttpResponseException(msg);