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
並「驗證」用戶,那麼我上面的代碼將「授權」他們只得到他們的項目。這裏我的想法有缺陷嗎?