About two weeks ago i was approached by my boss asking if I was able to whip up a "simple" application to allow Employee's External access to the Corporate NAS. Now, initially I was rather relucant to start development on a solution that could possibly compromise the entire 20+TB NAS but I had to take a step back and look at the current design of the network, security, authentication, size of the pipes etc and make an informed decision, as this system was only accessible externally and by certain users.
Now knowing the setup, i thought i would whip up a simple application to test to see if this was viable. Now the issue is that ALL external to internal authentication is controlled by a few Microsoft ISA Servers (a rather good product i must say), now the ISA Server MUST pass the Windows/NTLM credential onto the IIS webserver for the web application to run all operations as that user so the ACL permissions for each user could be force from the filesystem level.
Knowing this, i started trying to access a UNC path and was presented with "Access Denied", took a step back, i could see that my code was fine, i could see the WindowsIdentity of the user being impersonated, but it was just throwing access denied errors. After some lengthy research and have Microsoft assist with some issues, we identified that the webserver MUST be "Trusted for Delegation" to impersonate a user from webserver to NAS services.
Now comes the next issue, just so happens the smart people designing the FileShare NAS, decided not to use DFS (who knows), they wanted to use an EMC Cellera system with a Windows Server front end, which is fine (thankfully), as the trust for delegation only requires access to two services "HOST" and "CIFS". So once the SPN's are set right, the webserver is now trusted.
Ok, delegation - tick, impersonation - tick, lets try this again. Bingo works.
Now, where does DevExpress come into all this, well their AMAZING AgLayoutControl is at the heart of the presentation layer, i could not believe how easy it was whipping up the design, well i lie, i wasted 3 hours trying to get Grids and Canvas layout roots to behave and stretch the content, then i remembered i should be using the AgLayoutControl, re-watched the "Getting Started with Layout Persistence" video and I had the interface re-designed the way I wanted in 1 minute with the designer loading the layout from an xml file.
Now for the money shot. Nice and simple design, thanks to the AgLayoutControl

Cheers
Chris