2014-10-16 79 views
0

我正在用本地身份驗證構建ASP.net MVC Web應用程序。我想添加一些Web API端點,而不是外部使用,但純粹是爲了在我自己的頁面上使用jQuery AJAX調用。所以我添加了一個Web API控制器。基於會話/ Cookie的ASP.net MVC Web API基於Web應用程序的身份驗證

爲了驗證整合,我可以做這樣的事情:

[Authorize] 
public IQueryable<object> GetLabels(int ModuleId) 
{ 
    return db.Labels.Select(x => new { ID = x.ID, Name = x.Name, ModuleID = x.ModuleId }).Where(x => x.ModuleID == ModuleId); 
} 

這提供所需的行爲。但是,我遇到了一個問題:在以訪問用戶身份訪問API時,它會使用登錄頁面的HTML響應進行響應。

我寧願迴應一個小JSON對象給出錯誤或401錯誤。我怎樣才能改變這種行爲?

回答

0

擺脫授權屬性,並完成類似

if (!WebSecurity.IsAuthenticated) 
{ 
    return this.Request.CreateResponse(HttpStatusCode.Unauthorized, ""); 
} 
return this.Request.CreateResponse(HttpStatusCode.OK, yourobject); 

,並更改返回類型HttpResponseMessage;

+0

我不認爲這有效。什麼是迴應? – ian93 2014-10-17 00:09:29

+0

@ ian93 sry和編輯 – Steve 2014-10-17 00:17:22

+0

,但如果我將響應類型更改爲HttpResponseMessage,響應不可序列化爲JSON顯然...嗯... – ian93 2014-10-17 00:22:06

相關問題