internal IEnumerable <ISubject> GetSubjects(ISubject subject, ISecurityObjectId objectId, ISecurityObjectProvider securityObjProvider) { var subjects = new List <ISubject>(); subjects.Add(subject); subjects.AddRange( roleProvider.GetRoles(subject) .ConvertAll(r => { return((ISubject)r); }) ); if (objectId != null) { var secObjProviderHelper = new AzObjectSecurityProviderHelper(objectId, securityObjProvider); do { if (!secObjProviderHelper.ObjectRolesSupported) { continue; } foreach (IRole role in secObjProviderHelper.GetObjectRoles(subject)) { if (!subjects.Contains(role)) { subjects.Add(role); } } } while (secObjProviderHelper.NextInherit()); } return(subjects); }
internal IEnumerable<ISubject> GetSubjects(ISubject subject, ISecurityObjectId objectId, ISecurityObjectProvider securityObjProvider) { var subjects = new List<ISubject>(); subjects.Add(subject); subjects.AddRange( roleProvider.GetRoles(subject) .ConvertAll(r => { return (ISubject)r; }) ); if (objectId != null) { var secObjProviderHelper = new AzObjectSecurityProviderHelper(objectId, securityObjProvider); do { if (!secObjProviderHelper.ObjectRolesSupported) continue; foreach (IRole role in secObjProviderHelper.GetObjectRoles(subject)) { if (!subjects.Contains(role)) subjects.Add(role); } } while (secObjProviderHelper.NextInherit()); } return subjects; }