In this article, we will learn about creating a SQL Sever Database for authentication using Membership and Role Provider in SharePoint.
Step1
Creating database to store users for Forms Based Authentication(FBA)
Run C:\Windows\Microsoft.Net\Framework\v4.0.30319\aspnet.regsql.exe
[Wizard opens] -> NEXT -> Server:.\SqlExpress[Sql Server Name].
Select Windows Authentication [this is for SQL Server] -> Database:FBA_DB -> Finish.
We can check in SQL Server, if a new database FBA_DB has been created.
Step 2
To add users
Open Visual Studio. Go to File -> New -> Website -> HTTP. C# -> D:\TempWebsite -> OK ( Ensure that FrameWork 4.5 is selected).
Edit web.config
Change from Windows to Forms Authentication : <authentication mode="Forms"/>
If it is not already existing, add a web.config file. Add the connection string under Configuration section.
  1. <connectionString>
  2. lt;add name="FBASqlCS" connectionString="server=.\sqlexpress;Integrated Security=True;database="FBA_DB"/>
  3. </connectionString>
Open C:\Windows\Microsoft.Net\Framework\v4.0.30319\Config\Machine.config
(Note: Please use Machine.config of MS.NET Framework 4.0)
Copy<membership> and >rolemanager> sections and paste in<system.web>section.
  1. <membership defaultProvider=”FBASqlMembershipProvider“>
  2. <providers>
  3. <add connectionStringName=”FBASqlCS”
  4. applicationName=”/”
  5. name=”FBASqlMembershipProvider“
  6. type=”System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” />
  7. </providers>
  8. </membership>
<roleManager enabled"true" defaultProvider="FBASqlRoleProvider">
  1. <roleManager enabled=”true” defaultProvider="FBASqlRoleProvider">
  2. <providers>
  3. <add connectionStringName=”FBASqlCS”
  4. applicationName=”/”
  5. name=”FBASqlRoleProvider“
  6. type=”System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”/>
  7. </providers>
  8. </roleManager>
In [Menu Bar] Website, go to ASP.NET configuration->[a website admin page opens] select Authentication type-> How users will access:Internet-> OK.
Create Users & Roles as desired and confirm the same by checking in asp.net_users and asp.net_roles table of FBA_DB database.

Editing web.config of Web Application , Central Admin Application and STS
The next set of steps configures the membership and role manager, which requires modifying three different web.config files: for web application, for the Central Administration website and for STS.
Editing Web Application web.config file
  1. Go to Administrative Tools->Internet Information Server
  2. Select Web Application Website-> Click the Explore option in the Actions section on the right-hand side of the page.
  3. Create a copy of web.config .
  4. Open web.config in the directory and between </sharepoint> and <system.web> add the <connectionStrings> (Copy from TempWebsite)
  5. Locate<membershio default provider="i"...> and add the "<add.." from <membership> section from temp website.
  6. Locate the <roleManager defaultProvider"c" enabled="true"....> element and add the <roleManager>content from TempWebsite.
Note - Don't change the default providers. By default, they are "i" and "c".

Editing Central Administration website web.config file
  1. Go to Administrative tool->Internet Information Server
  2. select Central Administration Web Application Website->Click the Explore option in the Action Section on the right-hand side of the page.
  3. Add the <connectionStrings> section (copy from TempWebsite).
  4. After<system.web> add the <membership> section <roleManager>section from TempWebsite.
  5. In <roleManager> change the defaultProvider to "AspNetWindowsTokenRoleProvider" and enabled="true" as given below.
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
Editing Security Token Service(STS) website web.config file
  1. Go to Administrative tool->Internet Information Server
  2. Sites->Select SharePoint Web Services
  3. Click the explore option in the Actions section on the right-hand side of the page.
  4. Open web.config in the directory and before <system.web> add the <connectionstrings>(Copy from TemWebsite)
  5. Locate<membershio default provider="i"...> and add the "<add.." from <membership> section from temp website.
  6. locate the <roleManager defaultProvider"c" enabled="true"....> element and add the <roleManager>content from TempWebsite.
Note

Don't change the default providers. by default they are "i" and "c"
Enable Form Based Authentication in Existing Web Application
  1. Central Administration Site-> go to Manage Web Application-> Select Web Application-> Authentication Provider (Ribbon).
  2. Click on Default Link.
  3. CBA Types-> Check FBA-> Select ASP.NET membership Provider="FBASqlMembershipProvider" Role Provider="FBASqlRoleProvider"
Add users to the Web Application
  1. Finally, go to Central Administration Website-> Application management ->Manage Web Aplication
  2. Select the Web Application -> User Policy -> Add Users.
  3. Add users which we have created SQL Server database.
Allowing Anonymous Access
  1. In Central Administrator-> Go to Manage Web Application Page.
  2. Select the Web Application-. Authetication Provider ->Click Default.
  3. Check Anonymous Access-> Save
  4. Go to SharePoint Web Application -. Login Administrator-. Site Permissions-. Anonymous Access.
  5. Click Anonymous Access Button in Ribbon-> Select Entire Website-> Ok .