I was having troubles a month ago with .net reporting the Treo 650 Blazer browser as not being mobile. After a little research I thought the app_browsers and the brower.config files were going to be a good send. If you haven't worked with browser.config files, you can basically define the user agent string you want to match on and set how you want the properties to return. For instance, in my case the blazer browser from the palm was not returning as a mobile device. So I could change how the browser is evaluated and make it be a mobile device.
However, I quickly began having troubles recognizing the blazer user agent string and having the browser.config file work for it. If I changed my agent string to something completely different then I could get a .config file to work correctly.
I had something like the following.
<browsers>
<browser id="TreoBlazer" parentID="default">
<identification>
<userAgent match="Blazer" />
</identification>
<capture>
<userAgent match="Blazer.(?'version'(?'major'\d+)(?'minor'\.\d+))" />
</capture>
</browser>
</browsers>
So if I changed my useragent I was sending to something like 'DOTNET CODER" and changed the user agent match to "DOTNET CODER" it would work perfectly. I had at that time constructed a browserinfo.aspx web page just to check the values that the browser was reporting.
Finally I noticed that hte browser was being reported as IE6TO9. After some playing around with I realized that the parentID has to be the upstream browser that is reported. I'm not completely sure how it works, but since the browser agent was already being matched in the chain of browsers that was constructed, there was no way it would match with the parent being set to default.
So Changing the parentID to "IE6to9" worked like a charm. It finally began recognizing the blazer .config file I had created.
My final .config file looks something like the following.
<browsers>
<!-- sample UA "Mozilla/2.0 (compatible; Elaine/3.0)" -->
<!-- sample UA "Mozilla/2.0 (compatible; Elaine/1.0)" -->
<browser id="TreoBlazer" parentID="IE6to9">
<identification>
<userAgent match="Blazer" />
</identification>
<capture>
<userAgent match="Blazer.(?'version'(?'major'\d+)(?'minor'\.\d+))" />
<userAgent match="16\;(?'screenPixelsHeight'\d+)x(?'screenPixelsWidth'\d+)" />
</capture>
<capabilities>
<capability name="browser" value="Blazer" />
<capability name="cookies" value="true" />
<capability name="defaultScreenCharactersHeight" value="6" />
<capability name="defaultScreenCharactersWidth" value="12" />
<capability name="defaultScreenPixelsHeight" value="72" />
<capability name="defaultScreenPixelsWidth" value="96" />
<capability name="ecmascriptversion" value="1.1" />
<capability name="frames" value="true" />
<capability name="gatewayMajorVersion" value="${gatewayMajorVersion}" />
<capability name="gatewayMinorVersion" value="${gatewayMinorVersion}" />
<capability name="gatewayVersion" value="${gatewayMajorVersion}${gatewayMinorVersion}" />
<capability name="hidesRightAlignedMultiselectScrollbars" value="true" />
<capability name="inputType" value="virtualKeyboard" />
<capability name="isColor" value="false" />
<capability name="isMobileDevice" value="true" />
<capability name="javaapplets" value="false" />
<capability name="javascript" value="false" />
<capability name="mobileDeviceManufacturer" value="PalmOS-licensee" />
<capability name="majorVersion" value="${major}" />
<capability name="minorVersion" value="${minor}" />
<capability name="screenPixelsHeight" value="${screenPixelsHeight}" />
<capability name="screenPixelsWidth" value="${screenPixelsWidth}" />
<capability name="requiresAdaptiveErrorReporting" value="true" />
<capability name="requiredMetaTagNameValue" value="PalmComputingPlatform" />
<capability name="requiresHtmlAdaptiveErrorReporting" value="true" />
<capability name="screenBitDepth" value="2" />
<capability name="screenCharactersHeight" value="12" />
<capability name="screenCharactersWidth" value="36" />
<capability name="screenPixelsHeight" value="160" />
<capability name="screenPixelsWidth" value="160" />
<capability name="supportsBodyColor" value="false" />
<capability name="supportsBold" value="true" />
<capability name="supportsCss" value="false" />
<capability name="supportsDivNoWrap" value="false" />
<capability name="supportsEmptyStringInCookieValue" value="false" />
<capability name="supportsFontColor" value="false" />
<capability name="supportsFontName" value="false" />
<capability name="supportsFontSize" value="true" />
<capability name="supportsItalic" value="true" />
<capability name="supportsImageSubmit" value="false" />
<capability name="tables" value="false" />
<capability name="type" value="MyPalm" />
<capability name="vbscript" value="false" />
</capabilities>
<controlAdapters markupTextWriterType="System.Web.UI.Html32TextWriter">
<adapter controlType="System.Web.UI.WebControls.Menu"
adapterType="System.Web.UI.WebControls.Adapters.MenuAdapter" />
</controlAdapters>
</browser>
</browsers>