Active Directoryユーザーのプライマリー グループが接続範囲外だった場合のエラー


解説

Sitecore Active Directoryモジュールを使用している場合に、現在のAD接続を介して解決できないプライマリー グループを持つADユーザーのセキュリティが、正常に解決できない可能性があります。

これは例えば、信頼されたドメインからのユーザー、または現在の接続範囲の外のコンテナーからのユーザーに対して発生する場合があります。

問題が発生した場合、以下のエラーがSitecoreログに出力されます。

ERROR Application error.
Exception: System.NullReferenceException
Message: Object reference not set to an instance of an object.
Source: LightLDAP
   at LightLDAP.Helpers.DataHelper.GetInt(ISearchResult res, String propertyName)
   at LightLDAP.MembershipResolver.GetUserPrimaryGroup(String userName)
   at LightLDAP.SitecoreADRoleProvider.GetRolesForUser(String username)
   at Sitecore.Security.SwitchingRoleProvider.GetRolesForUser(String userName)

解決策

この問題を解決するには、以下のパッチを適用してください。

    1. Sitecore.Support.83252.dllアセンブリを\binフォルダーに配置します。 
    2. web.configファイルで、ADロール プロバイダーのタイプを以下のように変更します。
<add name="ad" type="LightLDAP.Support.SitecoreADRoleProvider, Sitecore.Support.83252" .../>