Следующий код для вашей справки.
var username = "user1";
var spGroupName = "SG_Uploader";
var adGroupName = "AD_L6";
using (SPSite spSite = new SPSite("http://sp2013/sites/team/"))
{
using (SPWeb spWeb = spSite.OpenWeb())
{
SPUser user = spWeb.EnsureUser(adGroupName);
if (user.Groups.Cast<SPGroup>().Any(g => g.Name.Equals(spGroupName)))
{
var principalContext = new PrincipalContext(ContextType.Domain);
var group = GroupPrincipal.FindByIdentity(principalContext, adGroupName);
var isGroupMember = group.Members.Any(x => x.Name == username);
if (isGroupMember)
{
Console.WriteLine("User " + username + " is a member of group " + spGroupName);
}
else
{
Console.WriteLine("User " + username + " is not a member of group "+spGroupName);
}
}
}
}
Я все еще заинтересован в ответе, потому что у него "много" вариантов использования.
На данный момент мы использовали следующий «обходной путь»: Проверьте, был ли доступ к файлу в течение 3 минут - затем не пытайтесь удалить его. (Для режима DEBUG!)
Помните, что проблема заключается только в «отладчике», а не в производстве, где исключения могут быть легко перехвачены (и проигнорированы) для определенной строки кода. [ 113]
Мы просто хотим избежать появления «Отладочных перерывов», если исключение можно безопасно игнорировать в ЭТОЙ строке кода.
foreach (String entry in contents)
{
if (System.IO.File.Exists(entry))
{
try {
#if (DEBUG)
FileInfo fi = new FileInfo(entry);
if (fi.LastAccessTime < DateTime.Now.AddMinutes(-3))
{
#endif
System.IO.File.Delete(entry);
#if (DEBUG)
}
#endif
}
catch (Exception e)
{
//ignore
}
}
}
Это НЕ решение, это обходной путь, сокращающий количество отладочных разрывов в этой строке кода примерно на 99%, если вы просто «остановите» отладку в Visual Studio!