2

私は SPServices.SPGetCurrentUser を使用して、現在ログインしているユーザーを取得し、そのユーザーが属しているグループを特定し、その決定に基づいてフィールドを無効にします。それは機能しますが、大きな問題が 1 つあります。これは SP 2010 Foundation イントラネットのみの環境であり、セキュリティで保護されています (SSL)。したがって、私たちのサイトにアクセスする唯一の方法は経由https://internalurlです。

SPServices を使用してこの問題に遭遇したことはありませんが、このコードを使用すると、IE のセキュリティ警告が表示されます。

一度に 1 行ずつコメント アウトすることで、SPServices.SPGetCurrentUser 行が警告の原因であると判断しました。この情報をどのように/どこで探しているのかに関係していると思いますか?

私の質問は、この警告を回避する方法はありますか? 1. IE の信頼済みサイトにサイトを追加するか、ブラウザのセキュリティ設定を調整します。(3000 人以上のユーザーがいますが、このルートには行きたくありません) 2. カスタム コーディングされたソリューション。(オプションではありません。私たちはノーコードのみです。JQuery と SPServices は私たちの限界です) 3. SSL を使用しないでください。(オプションではありません。私たちは金融機関であり、このような内部 URL でさえ、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 などに代わるものはありますか?

4

1 に答える 1

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 URL まで、2、3 しかありません)。これで問題は解決しました。セキュリティ警告のポップアップはなくなり、コードは期待どおりに機能します。

これが誰かに役立つことを願っています!

于 2013-01-31T19:47:24.790 に答える