The finest control over authentication is given by set one or more custom authentication provider. A custom authentication provider is a .Net Framework class which implement this IAuthenticator interface:


using DotNetNuke.Entities.Users;
using DotNetNuke.Security.Membership;
 
namespace Iconsulting.MDM.MDMWebServices.Components.Authentication.ForeingAuthentication {
 public interface IAuthenticator {
 
 int Priority { get; }
 
 UserInfo FreshLogin(int portalId, string username, string password, ref UserLoginStatus loginStatus);
 
 }
}


Of course you can place every authentication logic you want in this class, and interact with your specific authentication API.


Once you have implemented this interface, follow these steps:


- compile it in a class library (dll)

- rename it with .plugin extension (so for example if your class library is called CustomAuthenticator.dll the output file name should be CustomAuthenticator.dll.plugin)

- place it the root/bin folder of your FORMWORK instance 

- restart the instance if it was running


You have finished your work.


When the FORMWORK instance boots it scans root/bin folder searching .plugin files and loads them respecting theirs individual Priority.