2012-02-02 31 views
0

我試圖實現自己的AuthorizeAttribute的,我已經與WCF的Web API預覽6.定製MVC AuthorizeAttribute爲WCF的Web API預覽6

不幸的是只有構造函數將被稱爲建立我的REST API,但非方法。我是否註冊了註冊?

[BasicHttpAuthorize] 
[WebGet(UriTemplate = "")] 
public IEnumerable<Supertext.API.Order> Get() 
{ 

這是我超級簡化的代碼。

[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)] 
public class BasicHttpAuthorizeAttribute: AuthorizeAttribute 
{ 
    public BasicHttpAuthorizeAttribute() 
    { 
    } 

    protected override bool AuthorizeCore(HttpContextBase httpContext) 
    { 
     return true; 
    } 


    public override void OnAuthorization(AuthorizationContext filterContext) 
    { 
     //do the authorization 
    } 
} 

但正如我所說的,既沒有調用AuthorizeCore也沒有OnAuthorization方法。

任何想法?

回答

3

AuthorizeAttribute和動作過濾器通常是ASP.NET MVC特定的工件。他們與WCF無關。用它裝飾一個WCF操作合同不會有太大的作用。

0

我能夠完成上述的實現,而不HttpOperationHandler但從System.Web.Http.AuthorizeAttribute而不是System.Web.Mvc.AuthorizeAttribute繼承。也許一旦MCV和以前的WCF團隊都完全合併,兩個實現將會到達中心,但是現在,命名空間的變化幫了大忙!

請參閱:Custom MVC AuthorizeAttribute for ASP.NET Web API

+0

謝謝。實際上只是切換到新的MVC 4 Web API,現在就可以使用AuthorizeAttribute了。只要我有時間寫一些東西,我會立即發佈解決方案。 – Remy 2012-03-18 21:23:21