This project is read-only.

3.0 Release and NTLM Authentication

May 29, 2009 at 6:46 PM

I know you are probably asked this often, but what time frame is the 3.0 release scheduled or at least a source code release for the current build?  We are very impressed with the updates and look forward to being able to obtain the source code; we have a tweak we would like to make to handle multi-value columns in the facets web part.  Part of our project has involved the setup of content types that have fields with parent-child relationship that are stored in a multi-value format (Display and actual Value) and stored in a list.  We have then attached them to a search property and use the Faceted Search web parts to display those "facets", but since they are multi-value columns separated by a ;#, it shows up as "Display;#Value;#", etc.

On a side note, we can't seem to get the Hints web part to work properly (no hints popup on the search bar), but I suspect its related to the fact we required NTLM authentication on our SQL database (Kerberos is not available right now).  To get caching working, I had to switch from database caching to the NullBackingStore, which obviously does not persist between IIS resets, but it works while the system is up.  I do not have the option to add the ANONYMOUS LOGON account as that would result in a security violation for us, so I have to keep it locked down to the App Pool account.  I have tested to see if the ANONYMOUS LOGON would work and it does resolve the issue, but again we can not set that ACL.  I have also tried using SSPI as the authentication type, but that does not work on the DB connection string, seems to completely bypass that and go back to ANONYMOUS LOGON.  Any ideas on how to get this to function properly using NTLM and the App Pool accounts as I am at a loss?

Great work and look forward to future releases!

Thanks!

Very Respectfully,

Jeremy

May 30, 2009 at 2:51 AM

Jeremy,

Faceted Search should work with multi-value fields OOB. I would be interested to learn of any case when it doesn't.

The SQL part of the Hint will be revised in future builds. Hopefully, it will work with NTLM and Kerberos w/o glitch. And source will be released, although there is no date yet.

Jun 2, 2009 at 9:32 PM

> Faceted Search should work with multi-value fields OOB. I would be interested to learn of any case when it doesn't.


Curious, I have a multi-value column and it is separated by #;, but shows up with the #; in the faceted search web part.  Do you have to specify a different column type?  If so, what type should I use?

> The SQL part of the Hint will be revised in future builds. Hopefully, it will work with NTLM and Kerberos w/o glitch. And source will be released, although there is no date yet.

Excellent, thanks!  Glad to hear that NTLM is not totally lost! :)  Look forward to the next release!

Jun 2, 2009 at 10:57 PM

Faceted Search works with both multi-choice and multi-value lookup columns. You can post your .stp file with data and I'll look.

Jun 9, 2009 at 6:05 PM
Edited Jun 9, 2009 at 7:05 PM

I actually had a similar issue.  I made a custom field type (inheriting from text).  This custom field type allowed for multiple selections, which I delimited with ;#.  An example format would be:

data1;#data2;#data3

My quick workaround was to add a web part property "Custom Delimiter" and then update the Microsoft.SharePoint.Portal.ExtendedSearch.Common.Splitter.Split method like below.  Of course this assumes that no other property data contains a ';#' unless it is meant to be used as a delimiter....

One issue may be that the choice delimiter regex internal const string REGEX_CHOICE_SPLITTER = @"\d+;\#"; is set to expect a digit to be the first character.....

 

 <font size="2" color="#0000ff">

public

</font>

static string[] Split(string facetValue, string customDelimiter)

{

<font size="2">

 

</font>

if (reLookup.IsMatch(facetValue)) return reLookup.Split(facetValue);<font size="2">

 

</font>

if (reChoice.IsMatch(facetValue)) return reChoice.Split(facetValue);<font size="2">

 

</font>

if (customDelimiter != null)

{

<font size="2">

 

</font>

if (facetValue.Contains(customDelimiter)) return facetValue.Split(new string[] { customDelimiter }, StringSplitOptions.RemoveEmptyEntries);

}

<font size="2">

 

</font>

return null;

}