Using ASP.Net user controls ASCX in MOSS/WSSv3
Chris Johnson has posted a great article on using ASP.Net ASCX user controls in MOSS/WSSv3. I have been recently creating custom controls in Visual Studio (i.e. Control Classes not ASCX). To use these I add the controls to the GAC and then add an entry to the web.config to make it a safe control. The benefit of the ASCX model is that you can develop the user control in a more visual manner.
The ASCX controls can be used in MOSS/WSSv3 via the following method:
1. Create a Directory called "usercontrols" in the root of your sharepoint web site on the file system E.g. C:\Inetpub\wwwroot\wss\VirtualDirectories\moss.litwareinc.com80\UserControls
2. Open IIS manager and in the root of your SharePoint site create a VirtualDirectory called "_controls" and point it to that newly created directory.
3. Put your user control in that newly created directory on the filesystem
4. Open the web.config file and add the following:
<SafeControl src="~/_controls/*" mce_src="~/_controls/*" IncludeSubFolders="True" Safe="True" AllowRemoteDesigner="True" /">
5. In your ASPX page add the following:
<%@ Register src="~/_controls/SomeControl.ascx" mce_src="~/_controls/SomeControl.ascx" TagName="somecontrol" TagPrefix="uc2" %">
And...
<uc2:somecontrol id="mycontrol1" runat="server"></uc2:somecontrol>
6. Run your ASPX page and your control should render correctly.
Comments
Anonymous
January 31, 2008
Habib Says: April 25, 2007 at 3:01 am Hi, Great post!!! I have done what you have listed in order to use custom controls and it works fine. But I am having an issue when I enable anonymous access and the anon user tries to access the site that uses the custom controls. I either get an “unexpected error occurred” error or the site prompts the user to login. Any idea why this might be happening? Do I need to setup special permission for the “UserControls” folder? Thanks.Anonymous
January 31, 2008
Code Jedi Says: April 25, 2007 at 8:56 am I have noticed this behaviour in some circumstances. I have several basic user controls such as AdRotator and DublinCoreMetaDataControl which work with no problem, but I also developed a more complex control that iterates all SPSites in the Root Site, this one prompts for user credentials when in anonymous user mode. I haven’t really looked into it yet.Anonymous
January 31, 2008
Dan Marth Says: June 6, 2007 at 2:22 am Do you have a dll file along with your ascx file? I tried the step above except I have a dll file with code behind for the page, I tried just placing it in the bin folder but it just keeps giving errors. Any ideas? Thanks, DanAnonymous
January 31, 2008
siju Says: June 26, 2007 at 7:39 am What would I do if I have thridparty dlls being used by my custom controls? Thanks,Anonymous
January 31, 2008
Code Jedi Says: June 26, 2007 at 9:41 am Siju, Chris Johnson placed a comment on his blog post in relation to this: You can put your code behind DLL in the C:InetpubwwwrootwssVirtualDirectoriesmoss.litwareinc.com80BIN directory and SharePoint will find them. You will need to add an entry to the SafeControls list in web.config for your types in the DLL.Anonymous
January 31, 2008
Frucomerci Says: July 27, 2007 at 12:22 am Hello, good post, was helpful for me!! A bit short but enough! An attached dll would be great