我正在使用SPServices.SPGetCurrentUser来获取当前登录的用户,然后确定他们所在的组,最后根据该确定禁用字段。 它有效,但有一个大问题。 这是仅限 SP 2010 基础内联网的环境,并且是安全的 (SSL)。 因此,访问我们网站的唯一方法是通过 https://internalurl
.
以前从未遇到过这个问题,使用SPServices,但是通过这段代码,我收到了IE安全警告:"您是否只想查看安全交付的网页内容?
通过一次注释掉一行,我确定SPServices.SPGetCurrentUser行是导致警告的原因。 我想这与它如何/在哪里寻找这些信息有关?
我的问题是,有没有办法绕过这个警告? 以下是我到目前为止发现的解决方案,其中没有一个真正适用于我的方案:1. 将站点添加到 IE 受信任的站点,或以其他方式调整浏览器安全设置。(我们有3000+用户,不想走这条路)2.自定义编码解决方案。(不是一个选项,我们只是无代码。JQuery 和 SPServices 是我们所走的)3. 不要使用 SSL。 (不是一个选项。我们是一家金融机构,即使是像这样的内部网址也只能通过SSL访问。
代码如下:
<script language="javascript" type="text/javascript" src="/CodeLibrary/jquery.SPServices-0.7.1a.min.js"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function() {
$().SPServices({
operation: "GetGroupCollectionFromUser",
userLoginName: $().SPServices.SPGetCurrentUser(),
async: false,
completefunc: function(xData, Status) {
//if current user is not a member of this group...
if($(xData.responseXML).find("Group[Name='Change Control - Admins']").length != 1)
{
//...disable the following fields
$("textarea[Title='Requirements']").attr("disabled", "disabled");
}
}
});
});
</script>
有什么想法吗? SPServices.SPGetCurrentUser等的替代品?
我能够自己解决这个问题。 这是我所做的...
SPServices.SPGetCurrentUser 引用/_layouts/文件夹中的文件。 在 SPServices 代码中,该引用是相对的。 无论出于何种原因,SharePoint 都不会自动使用 https 来查找它。 它只是使用http...至少据我所知。 所以我所做的就是复制jquery。SPServices-0.7.2.min.js 文件,将其重命名为 jquery。SPServices-0.7.2.min.ssl.js,然后将对/_layouts/文件夹(只有一对)的所有引用更新为完整的 https URL。 这解决了问题。 不再弹出"安全警告",代码按预期工作。
希望这对某人有用!