This is the third blog in a series addressing how to use ECTS in a real world deployment. I first wrote a blog about how to install ECTS (External Collaboration Toolkit for SharePoint) in a "real world" environment, basically extending an existing site properly. I then followed up with a list of issues experienced during the installtion. This is the third in the series which addresses the issue of allowing external users to request their own accounts.
While ECTS allows users to be added by your internal corporate people there is no way for an external user to initiate the ECTS access request. I think this is a big draw back to ECTS, and with that in mind I began looking into ECTS to see if the issue could be resolved.
My Findings
Bad news is that ECTS has no application page that will allow an external user to request access to the site.
My Solution
ECTS is a CodePlex (http://www.codeplex.com) project, well it is part of a CodePlex project called CKS (obvious name…I know), so that means we can get the code and extend it however we want. If you are using the download from Microsoft be aware that it does lag behind the CodePlex project and therefore some of the nice features in CKS may not be available in your ECTS assemblies.
Your new project will need to include the assembly from the ECTS install EAT.Common. This assembly contains most of what you will need to use (User Manager and SqlManager).
I recommend creating a new solution with a SharePoint application page, you can easily copy the aeu.aspx page and its code behind file into your project, to implement your external user request. You may also want the external user to provide some additional information (First Name, Last Name, Phone, etc) when they request their account. These types of procedures are done the same as a simple .NET application page so it should be pretty fast and easy for most reasonably experienced developers.
If you want to add additional information to the ADAM user object you can use the CKS project to help you extend the cUserManager object from the ECTS install. The cUserManager is pretty limited as to what it will do for you, but the cUserManager from the CKS project has a lot more functionality. I simply extended the ECTS cUserManager to include a SetProfileInformation function, which I copied directly from the CKS project's cUserManager and had no issues.
If you are looking for a tool to help with developing your SharePoint Application Page solution I would recommend STSDev2008 which has an Application Page Project type readily available and creates the solution file as part of the build process.