asp.net核心odata每个实体的动态安全性

时间:2020-06-14 16:31:47

标签: asp.net-core entity-framework-core odata

我需要根据基本身份验证中的用户名创建对Odata实体属性的访问权限,并将其与数据库中的配置文件进行比较。 我可以通过此类捕获用户名。

public class BasicAuthenticationHandler : ActionFilterAttribute
    {
        public StringValues authorizationToken;

        public override void OnActionExecuting(ActionExecutingContext actionContext)
        {
            actionContext.HttpContext.Request.Headers.TryGetValue("Authorization", out authorizationToken);
            GetUsername(authorizationToken);


        }
        public string GetUsername(string decodeUser)
        {
            if (String.IsNullOrEmpty(decodeUser))
            {
                return null;
            }
            var header = decodeUser.Replace("Basic", "").Trim();           
            var base64EncodedBytes = Convert.FromBase64String(header);
            var cred = Encoding.UTF8.GetString(base64EncodedBytes).Split(new[] { ':' }, 2);
            var username = cred[0];
            return username;

        }




    }

她的Edm模型

public class EdmModelBuilder
    {

        public IEdmModel GetModelEmployes()
        {
            ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
            builder.EntitySet<Students>("students");
            return builder.GetEdmModel();
        }

    }

但是我需要覆盖edm模型并根据用户忽略属性。 有人可以帮忙吗?

0 个答案:

没有答案