开发者

Sitecore SIP active directory issues after authentication

开发者 https://www.devze.com 2023-04-07 19:50 出处:网络
I\'ve setup the active directory LDAP module in Sitecore\'s Intranet Portal 3.2 product and have had limited success.I receive the error \"Unable to cast object of type \'System.Configuration.Settings

I've setup the active directory LDAP module in Sitecore's Intranet Portal 3.2 product and have had limited success. I receive the error "Unable to cast object of type 'System.Configuration.SettingsPropertyValue' to type 'LightLDAP.ADSettingsPropertyValue'." when I click the "Ok" button on user properties, applying a user template with custom properties, when I try to view the workbox from the front end editor, and when I try to access any item in the content editor.

I am able to successfully sign-on through the LDAP module, manage CMS role access, security, etc. I am automatically logged in on the front-end, and can type in my domain\username\pwd and successfully authenticate though AD.

Any help would be much appreciated

Stack Trace

[InvalidCastException: Unable to cast object of type 'System.Configuration.SettingsPropertyValue' to type 'LightLDAP.ADSettingsPropertyValue'.]
   LightLDAP.SitecoreADProfileProvider.SetPropertyValues(SettingsContext context, SettingsPropertyValueCollection collection) +388
   Sitecore.Security.SwitchingProfileProvider.SetPropertyValues(SettingsContext context, SettingsPropertyValueCollection collection) +294
   System.Configuration.SettingsBase.SaveCore() +484
   System.Configuration.SettingsBase.Save() +72
   System.Web.Profile.ProfileBase.SaveWithAssert() +43
开发者_如何学编程   System.Web.Profile.ProfileBase.Save() +159
   Sitecore.Security.UserProfile.Save() +32
   Sitecore.Web.UI.HtmlControls.Registry.SetValue(String key, String value) +202
   Sitecore.Web.UI.HtmlControls.Listview.DoSetView(String name) +163
   Sitecore.Shell.Applications.ContentEditor.FileDropArea.OnLoad(EventArgs e) +693
   System.Web.UI.Control.LoadRecursive() +66
   System.Web.UI.Control.LoadRecursive() +191
   System.Web.UI.Control.AddedControl(Control control, Int32 index) +350
   Sitecore.Web.UI.Sheer.ClientPage.AddControl(Control parent, Control control, String placeholder) +240
   Sitecore.Shell.Applications.ContentEditor.EditorFormatter.AddEditorControl(Control parent, Control editor, Field field, Boolean hasRibbon, Boolean readOnly, String value) +249
   Sitecore.Shell.Applications.ContentEditor.EditorFormatter.RenderField(Control parent, Field field, Item fieldType, Boolean readOnly, String value) +1097
   Sitecore.Shell.Applications.ContentEditor.EditorFormatter.RenderField(Control parent, Field field, Item fieldType, Boolean readOnly) +204
   Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.RenderInput(Field field) +131
   Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.RenderElement(XmlNode element) +603
   Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.RenderChildElements(XmlNode element) +141
   Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.RenderMarker(XmlNode element) +175
   Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.RenderElement(XmlNode element) +674
   Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.RenderChildElements(XmlNode element) +141
   Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.RenderSectionPanel(XmlNode element) +270
   Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.RenderElement(XmlNode element) +635
   Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.AddText(XmlNode element) +494
   Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.RenderElement(XmlNode element) +717
   Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.AddText(XmlNode element) +494
   Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.RenderElement(XmlNode element) +717
   Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.Render(XmlDocument skin) +125
   Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.Process(RenderContentEditorArgs args) +353
   (Object , Object[] ) +79
   Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) +240
   Sitecore.Shell.Applications.ContentManager.Editor.Render(RenderContentEditorArgs args, Control parent) +538
   Sitecore.Shell.Applications.ContentManager.ContentEditorForm.RenderEditor(Item item, Item root, Control parent, Boolean showEditor) +232
   Sitecore.Shell.Applications.ContentManager.ContentEditorForm.UpdateEditor(Item folder, Item root, Boolean showEditor) +345
   Sitecore.Shell.Applications.ContentManager.ContentEditorForm.Update() +344

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +0
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +1255
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +38
   Sitecore.Reflection.ReflectionUtil.InvokeMethod(MethodInfo method, Object[] parameters, Object obj) +91
   Sitecore.Reflection.ReflectionUtil.CallMethod(Object obj, String methodName, Boolean includeNonPublic, Boolean includeInherited, Object[] parameters) +75
   Sitecore.Shell.Applications.ContentManager.ContentEditorPage.OnPreRender(EventArgs e) +120
   System.Web.UI.Control.PreRenderRecursiveInternal() +108
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3410


I did not solve the actual problem, but did come up with a work around. It appears the AD sitecore module in some sense requires write access to AD even though I had disabled almost all parts of the module. I'm not sure why there is no configuration option for a read-only mode.

Regardless, I created some code that finds the user in AD; if found it creates a virtual user, creates a user profile if needed, and updates that profile with the most current info from AD each time the user authenticates with the page.

0

精彩评论

暂无评论...
验证码 换一张
取 消