November Happy Hour will be moved to Thursday December 5th.

Customer authentication in EPiServer CMS 9

Vote:
 

I have a website which is going to have a section where the visitor has to log in to be able to use. I do not want to store these users in the EPiServer user-database but rather in another database (or preferably another application, for example a .net web api website). I may want to use facebook or some other mechanism for signing users up/loging on to the website. And I will want to save custom data for the user in some way (other than credentials..). Usage of the built in ways to check if authenticated in .NET would be nice (User.IsAuthenticated, Authorize-attributes..), and also being able to use roles and doing impersonation for a specific user when an administrator is logged in to EPiServer.

What is the prefered way of dealing with such things in EPiServer 9+ without messing around with the internal EPiServer user-database?

For the Admin/Edit UI i use the standard sqlserver membership provider so there is nothing special there. 

Thanks in advance for any insight you might offer :)

#147663
Apr 20, 2016 20:18
Vote:
 

Well, I guess you have two options.

1. The easy path is implementing a custom membership and roleprovider a la .NET 2.0. Nothing fancy there but gives you control over where to save your users etc. 

2. Federated solution with SSO. This is a trickier path. You can check out 

http://world.episerver.com/documentation/Items/Developers-Guide/Episerver-CMS/9/Security/federated-security/

for a brief guide. If you don't really really need single sign on between the sites, I would go for the first option. It's easy to implement and to maintain. Number 2 is pretty easy to create a working prototype of but tricky to implement correctly without bug and when it starts to go wrong it can cost quite a few hours to find errors. I recommend to use heavy logging for both for maintainability.

#147700
Apr 21, 2016 15:46
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.