首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只允许访问组,但允许所有用户访问API。

只允许访问组,但允许所有用户访问API。
EN

Stack Overflow用户
提问于 2013-03-03 21:28:21
回答 1查看 125关注 0票数 0

我有一个mvc4内联网网站,我正在致力于这个网站的前端,只有少数AD组可以访问,但我也使用mvc4的web功能,我需要开放给所有用户,甚至匿名用户。我尝试过使用Web.config,但这会阻止所有不属于其中一个组的用户。

如何在保持API打开的同时保护前端的安全?

更新:

我只是想,我想避免用像[Authorize]这样的属性来标记每个方法

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-04 03:27:39

弄明白了。

我只是应用了一个筛选器来检查每个控制器的名称空间。由于我的所有API控制器都在HSServer.Controllers.Api中,所有的web控制器都在HSServer.Controllers.Web中,所以在我的FilterConfig.cs中,这段代码工作起来很有魅力。

代码语言:javascript
复制
public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new FrontendAuthorize());
        filters.Add(new HandleErrorAttribute());
    }
}

public class FrontendAuthorize : AuthorizeAttribute
{
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
        try
        {
            if (!filterContext.Controller.GetType().Namespace.StartsWith("HSServer.Controllers.Api"))
                base.OnAuthorization(filterContext);
        }
        catch (NullReferenceException)
        {
            base.OnAuthorization(filterContext);
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15191117

复制
相关文章

相似问题

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