SPServices.SPGetCurrentUser在https环境中导致安全警告

时间:2013-01-31 16:46:11

标签: jquery sharepoint spservices

我正在使用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等的替代方案?

1 个答案:

答案 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网址。这解决了这个问题。没有更多安全警告弹出窗口,代码按预期工作。

希望这对某人有用!