我需要根据基本身份验证中的用户名创建对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模型并根据用户忽略属性。 有人可以帮忙吗?