JavaScript code to detect the Flash Player 4.0 or later

Sometimes it is required that your web page should validate, before displaying swf files, that whether flash plugin is installed on client computer or not. So try below code and enjoy:
 
var plugin = (navigator.mimeTypes &&
navigator.mimeTypes["application/x-shockwave-flash"] ?  navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0);
  
  if (plugin && parseInt(plugin.description.substring(plugin.description.indexOf(".")-1)) >=  4) {
  
   //Flash 4 or greater is available

  } else {
  
   //Flash 4 is not available

  }

Patching a mirrored farm with minimal downtime

For administrators of large SharePoint server farms, a newly-published article describes how to update server farms that use database mirroring, while incurring minimal perceived downtime for users. This solution is for enterprise customers who have high-availability needs and infrastructure. The article describes a step-by-step process for Office SharePoint Server farms that incorporate SQL Server mirroring. You can achieve similar results on Office SharePoint Server farms that are set up in a clustered server environment.

In brief, the solution requires that you:

· Disable mirroring and set the mirror databases to read-only

· Route network and database traffic to the read-only databases

· Apply software updates to the offline servers

· Route network and database traffic to the updated servers

· Apply software updates to the secondary farm

· Re-enable mirroring and set the mirrored databases to read/write

To read the full solution, see Configure a server farm for minimal downtime during software updates

How to find all shares in MS CRM 4

While implementing CRM at one of our clients, I was asked to provide them a report of all shares by one user. I was sure it must have to do something while displaying all items views in CRM. So I used SQL Profiler to find exact query used by CRM to fetch all items on which a user has access and from them extract the part which returns all shares for a user. This is what I got and it is really simple to find shares 🙂
 

select

POA.* from PrincipalObjectAccess POA join SystemUserPrincipals sup on POA.PrincipalId = sup.PrincipalId

where

sup.SystemUserId = ‘6130B308-2692-DE11-A9EF-000C29F4EE9D’ and POA.ObjectTypeCode = 4200 and

((

POA.AccessRightsMask|POA.InheritedAccessRightsMask) & 1) = 1

A handy and free of cost Call Center Solution by Microsoft using CRM and OCS

The Agent Communications Panel for Microsoft Dynamics CRM 4.0 is an application add-in to Microsoft Dynamics CRM 4.0. It works with Microsoft Dynamics CRM and Microsoft Office Communications Server 2007 R2, and enables agents to manage their communications (make calls, receive calls, conference, and chat) from their Microsoft Dynamics CRM system.

The Agent Communications Panel is an XAML browser application (XBAP). It is published to a Web server and opened from a Web browser.

It can be downloaded from Here

Reparenting Cascade behavior in MS CRM

Issue:

Lets say I have Campaign A created by user User1. Now when I login as CRM Admin and create a planning task and assign it to User2, User1 being owner of the Campaign gets complete access to this task although role of User1 has neither read nor write access to other people’s tasks. When I check DB, inheritedaccessrightsmask for the object is set to non-zero value which should be for CRM Admin not for User2. In other words, although CRM Admin has reassigned this task to User2, its inheritedaccessrightsmask is not reset. If I login as User1 and create a task for User2, I immediately get access denied and task is created for User2 on which User1 has neither read nor write access.

Since workflows usually run as CRM Admin, it happens with all tasks and Campaign owners can play with approval tasks which is not good.

Resolution:

What we need to do is change the Cascading relationships on Campaigns / Accounts / Contacts / Custom Entities etc.  The issue is with the Reparent Cascade behavior.  The Reparent is actually what takes care of granting rights when a new child record is created, like a Task.  If the Reparent is set to Cascade All, when you create a new Task/Activity under a parent record (Account, Contact, Campaign etc), the Reparent rule grants the Owner of the parent record access to the child. So change it from Cascade All to Cascade User-Owned. 

How to enable NTLM authentication for reports in CRM 4.

By default, MS Dynamics CRM uses Kerbaros for reports authentication against SSRS. Now everyone will agree with me that configuring Kerbaros is not an easy option and secondly it requires involvement of infrastructure guys with many "WHY"s. So I was wondering is there any way to avoid all this hassle. Finally with the help of google and reading some forums, I was able to find a nail that can be used to avoid all this.
  1. Open your registry and browse to HKLM->Software->Microsoft->MSCRM key
  2. Add a DWord NTLMForSQLRSServer
  3. Set its value to 1.
  4. Reset IIS.

And enjoy NTLM for accessing your reports rather than Kerbaros