我正在使用SPServices.SPGetCurrentUser来获取当前登录的用户,然后确定他们所在的组,最后根据该确定禁用字段。它有效,有一个大问题。这是SP 2010 Foundation Intranet环境,它是安全的(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等的替代方案?
答案 0 :(得分:4)
我能够自己解决这个问题。这就是我做的......
SPServices.SPGetCurrentUser引用/ _layouts /文件夹中的文件。在SPServices代码中,该引用是相对的。无论出于何种原因,SharePoint都不会自动使用https来查找它。它只使用http ...至少从我能说的。所以我做的是复制jquery.SPServices-0.7.2.min.js文件,将其重命名为jquery.SPServices-0.7.2.min.ssl.js,然后更新所有对/ _layouts /文件夹的引用(只有一对),到完整的https网址。这解决了这个问题。没有更多安全警告弹出窗口,代码按预期工作。
希望这对某人有用!