仅授权来自特定域asp.net MVC的电子邮件

时间:2016-12-25 14:15:40

标签: model-view-controller authorization

我正在尝试限制来自一个特定域的用户对一个控制器的访问。我认为以下内容可行:

[Authorize(Users = "*@domain.com")]

但事实并非如此。有没有办法开箱即用,或者我需要开发自己的属性?

由于

1 个答案:

答案 0 :(得分:0)

我最终创建了一个继承自AuthorizeAttribute的属性。

public class AuthorizeEmailDomainAttribute : AuthorizeAttribute
    {
        // Custom property
        public string EmailDomain { get; set; }

        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            var isAuthorized = base.AuthorizeCore(httpContext);
            if (!isAuthorized)
            {
                return false;
            }

            bool isGoodDomain= httpContext.User.Identity.Name.Contains("@" + EmailDomain);
            return isGoodDomain;
        }
    }

度过愉快的一天