2
我目前有一个服务,通过https保护TransportWithMessageCredential。这个作品太棒了!我现在需要为此服务的某些操作添加一些粒度。WCF中的用户授权与BasicHttpBinding与TransportWithMessageCredential
可以说我有这种方法public IEnumerable<Project> GetProjects()
现在我需要添加一个额外的方法,将投影限制到当前用户有权访问的项目。
是使用这样的代码:
var uid = System
.ServiceModel
.OperationContext
.Current
.IncomingMessageProperties
.Security
.ServiceSecurityContext
.PrimaryIdentity;
var returnProjects = context.Projects.Where(p => p.ProjectManager.Equals(uid.Name));
要离开我容易受到任何形式的攻击?
我认为这应该没问题,因为WCF首先会打我的自定义UserNamePasswordValidator
并“验证”用户,那么我上面的代码将“授权”他们只得到他们的项目。这里我的想法有缺陷吗?