非常奇怪的对冲案件,非常ple。 我拥有一个网站服务,这份网站导游名单的许可清单。 确定用户是否允许进入第1站点,使用以下代码。
[WebMethod]
public GetSiteListPermissionsResponseCollection GetSiteListPermissions(string[] siteList)
{
GetSiteListPermissionsResponseCollection siteListReturn = new GetSiteListPermissionsResponseCollection();
foreach (string key in siteList)
{
string escapedKey = Uri.EscapeUriString(key);
if (Uri.IsWellFormedUriString(escapedKey, UriKind.Absolute))
{
bool originalCatchValue = SPSecurity.CatchAccessDeniedException;
SPSecurity.CatchAccessDeniedException = false;
try
{
using (SPSite site = new SPSite(escapedKey, SPContext.Current.Site.SystemAccount.UserToken))
{
using (SPWeb web = site.OpenWeb())
{
siteListReturn.Add(new GetSiteListPermissionsResponse(key, web.DoesUserHavePermissions(SPContext.Current.Web.CurrentUser.LoginName, SPBasePermissions.Open).ToString()));
}
}
}
catch
{
siteListReturn.Add(new GetSiteListPermissionsResponse(key, false.ToString()));
}
finally
{
SPSecurity.CatchAccessDeniedException = originalCatchValue;
}
}
}
return siteListReturn;
}
这一工作做得相当好,但我们陷入了一种非常奇怪的情况,即UserHavePermissions返回法尔。 如果使用“DOMAINdomain”用户提供上网的机会,那么这种结果就是假的。 所有其他地点似乎都做了罚款。
你可以直接增加用户,而且当用户能够进入时即立即返回,但出于某种原因,这个网站和这个网站在使用“主要用户”来提供无障碍用具时,不会恢复真正的反应。
任何杂质?