0

所以,我有一個自定義的身份驗證令牌,我用它來保護我的web.api項目。現在,這是一個持票人類型令牌,我將其與頭部一起傳遞,並且已經設法在我的WebAPI項目中無縫地使用它。授權令牌不在標頭

複雜的是,我無法將它用於我的MVC項目。 MVC上的[Authorize]標記使用System.Web.Mvc庫而不是System.Web.Http。爲了檢查包含授權令牌的頭部發生了什麼,我使用了一個自定義的令牌屬性。

public override void OnAuthorization(AuthorizationContext context) 

在我上面的功能,當我窺視到使用context.HttpContext.Request.Headers的頭,我看到有沒有在頭授權令牌。這是荒謬的,因爲我使用角度注入器來添加Bearer令牌,並且它非常存在於正在發送的客戶端請求中。

我沒有做什麼來接收這個令牌?

[更新]

所以有點調試後,我只注意到了授權屬性不附加到重定向URL的。我想這是因爲應用程序沒有爲這些調用工作的角度攔截器。任何想法如何追加授權記住令牌太多的所有請求?

+0

爲什麼不能使用['AuthorizeAttribute'](http://msdn.microsoft.com/en-us/library/system.web.http.authorizeattribute(v = vs.118).aspx) 'System.Web.Http'? – DavidG 2014-10-27 16:12:39

+0

該屬性只能應用於'ApiController'而不是'Controller'。它被自動拒絕。 – Shouvik 2014-10-27 16:29:55

+0

'System.Web.Mvc.AuthorizeAttribute'和'System.Web.Http.AuthorizeAttribute'都存在。使用適當的一個。 – DavidG 2014-10-27 16:31:01

回答

0

原因:當沒有執行javascript時,如果存在window.location.href,則無法向頭中插入值。這是客戶端瀏覽器的直接發佈。解決方案是創建一個cookie並在請求中使用它。