首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF Web AuthorizeAttribute预览版6的自定义MVC

WCF Web AuthorizeAttribute预览版6的自定义MVC
EN

Stack Overflow用户
提问于 2012-02-02 20:45:23
回答 3查看 1.4K关注 0票数 0

我尝试为我用WCF Web API Preview 6构建的REST API实现自己的AuthorizeAttribute。

不幸的是,只有构造函数会被调用,而不是方法。我是不是遗漏了什么注册信息?

代码语言:javascript
复制
[BasicHttpAuthorize]
[WebGet(UriTemplate = "")]
public IEnumerable<Supertext.API.Order> Get()
{

这是我的超级简化的代码。

代码语言:javascript
复制
[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方法都不会被调用。

有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-02 20:47:22

AuthorizeAttribute和动作过滤器一般都是特定于ASP.NET的工件。它们与WCF没有任何关系。用它装饰一个WCF操作契约不会有太大的效果。

票数 3
EN

Stack Overflow用户

发布于 2012-02-03 20:49:27

由于使用AuthorizeAttribute不能与WCF Web API一起使用,因此我提出了自己的解决方案。

我已经构建了一个自定义的HttpOperationHandler,并将其与一个属性组合在一起,因此我获得了与MVC AuthorizeAttribute类似的功能。

结果如下:

http://remy.supertext.ch/2012/02/basic-authentication-with-wcf-web-api-preview-6/

票数 0
EN

Stack Overflow用户

发布于 2012-03-16 00:26:10

我可以在没有HttpOperationHandler的情况下完成上面的实现,但是继承了System.Web.Http.AuthorizeAttribute而不是System.Web.Mvc.AuthorizeAttribute。也许一旦MCV和以前的WCF团队完全合并,这两个实现将成为中心,但现在,名称空间的更改帮助很大!

请参阅ref:Custom MVC AuthorizeAttribute for ASP.NET Web API

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9112531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档