I´m building a web application which could get accessed in two ways. Everyone who is working in the same organisation as I can use our active directory to access the application.
Everyone from outside should join the application through a separate membership database. Everyone should have a account in the membership database with his roles, so the ad connection is just a bonus to make it easier to keep the password and username in mind. I searched the internet but couldn't find a comparable situation. This is my first time working with ad.
Does anyone know of a framework that can be used or give me a hint on how I could try to solve the problem?
At moment I implemented the membership connection with System.Web.WebData.SimpleMembershipProvider
and it works fine.
In the later development of the application I also need some other connections to the ad to check some information but that is just a problem for another day.
Thanks for the help.
Open up your web.config.
First of all you'll need connectionString for your ActiveDirectory:
Scroll down to the
<membership>
tag. Make sure you have defaultProvider attribute set for the<membership>
, like:<membership defaultProvider="SimpleMembershipProvider">
Then add new provider for AD members inside
<providers>
:That should do the trick for web.config. Now we need to auth AD users on Log in. Go to your AccountController Login action. First we try to authenticate user via ActiveDirectory, there is handy class called
PrincipalContext
inSystem.DirectoryServices.AccountManagement
namespace. If that fails we use the default membership provider:For your later requirements you can get the current logged in ActiveDirectory user with UserPrincipal class:
Hope this helps and I didn't miss anything.
This Code will give you if the user with specified username and password is valid
You can add DomainController and BaseDomainName in web.config appSettings as keys