{"id":132,"date":"2013-01-02T13:49:15","date_gmt":"2013-01-02T18:49:15","guid":{"rendered":"http:\/\/blogs.visigo.com\/chriscoulson\/?p=132"},"modified":"2013-01-22T10:41:50","modified_gmt":"2013-01-22T15:41:50","slug":"configuring-forms-based-authentication-in-sharepoint-2013-part-1-creating-the-membership-database","status":"publish","type":"post","link":"https:\/\/blogs.visigo.com\/chriscoulson\/configuring-forms-based-authentication-in-sharepoint-2013-part-1-creating-the-membership-database\/","title":{"rendered":"Configuring Forms Based Authentication in SharePoint 2013 &#8211; Part 1 &#8211; Creating the Membership Database"},"content":{"rendered":"<p>Configuring forms based authentication (FBA) in SharePoint 2013 is very similar to SharePoint 2010, but there are some differences due to SharePoint 2013 using .Net 4.0. The web.config entries entries are slightly different. As well, IIS doesn&#8217;t support editing .Net 4.0 membership provider configuration through the IIS interface, so all of the configuration has to be done directly in the .config files. I&#8217;ll go through all of the steps required to setup FBA for SharePoint 2013, from start to finish. \u00a0I&#8217;ve broken down the steps into 4 sections, so if you already have an existing membership database setup from a previous version of SharePoint, feel free to skip forward to <a title=\"Configuring Forms Based Authentication in SharePoint 2013 \u2013 Part 3 \u2013 Editing the Web.Config Files\" href=\"https:\/\/blogs.visigo.com\/chriscoulson\/configuring-forms-based-authentication-in-sharepoint-2013-part-3-editing-the-web-config-files\/\">Part 3<\/a>.<\/p>\n<p><a title=\"Configuring Forms Based Authentication in SharePoint 2013 \u2013 Part 1 \u2013 Creating the Membership Database\" href=\"https:\/\/blogs.visigo.com\/chriscoulson\/configuring-forms-based-authentication-in-sharepoint-2013-part-1-creating-the-membership-database\/\">Part 1 &#8211; Creating the Membership Database<\/a><\/p>\n<p><a title=\"Configuring Forms Based Authentication in SharePoint 2013 \u2013 Part 2 \u2013 Adding users to the Membership Database\" href=\"https:\/\/blogs.visigo.com\/chriscoulson\/configuring-forms-based-authentication-in-sharepoint-2013-part-2-adding-users-to-the-membership-database\/\">Part 2 &#8211; Adding Users to the Membership Database<\/a><\/p>\n<p><a title=\"Configuring Forms Based Authentication in SharePoint 2013 \u2013 Part 3 \u2013 Editing the Web.Config Files\" href=\"https:\/\/blogs.visigo.com\/chriscoulson\/configuring-forms-based-authentication-in-sharepoint-2013-part-3-editing-the-web-config-files\/\">Part 3 &#8211; Editing the Web.Config Files<\/a><\/p>\n<p><a title=\"Configuring Forms Based Authentication in SharePoint 2013 \u2013 Part 4 \u2013 Configuring SharePoint\" href=\"https:\/\/blogs.visigo.com\/chriscoulson\/configuring-forms-based-authentication-in-sharepoint-2013-part-4-configuring-sharepoint\/\">Part 4 &#8211; \u00a0Configuring SharePoint<\/a><\/p>\n<h2>Part 1 &#8211; Creating the Membership Database<\/h2>\n<p>The first thing you need when configuring FBA for SharePoint is a place to keep all of the usernames and passwords. ASP.Net comes with a tool that we&#8217;ll use to create a membership database to store the logon information.<\/p>\n<ul>\n<li>Navigate to c:\\windows\\Microsoft.NET\\Framework64\\v4.0.30319\\<\/li>\n<li>Run &#8220;aspnet_regsql.exe&#8221;<a href=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-133\" alt=\"sharepoint_2013_fba_1\" src=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_1-500x293.png\" width=\"500\" height=\"293\" srcset=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_1-500x293.png 500w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_1-300x176.png 300w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_1.png 790w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/li>\n<li>A welcome screen will appear. Click Next.<a href=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-134\" alt=\"sharepoint_2013_fba_2\" src=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_2-500x387.png\" width=\"500\" height=\"387\" srcset=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_2-500x387.png 500w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_2-300x232.png 300w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_2.png 580w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/li>\n<li>Select &#8220;Configure SQL Server for application services&#8221; and click Next.<a href=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-135\" alt=\"sharepoint_2013_fba_3\" src=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_3-500x387.png\" width=\"500\" height=\"387\" srcset=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_3-500x387.png 500w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_3-300x232.png 300w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_3.png 580w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/li>\n<li>Enter the name of your server and your authentication information. \u00a0In this case SQL Server is installed on the same server as SharePoint 2013 and I am logged in as an administrator and have full access to SQL Server, so I choose Windows Authentication.For the database name, I just leave it as &lt;default&gt;, which creates a database called &#8220;aspnetdb&#8221;.<a href=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-136\" alt=\"sharepoint_2013_fba_4\" src=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_4-500x387.png\" width=\"500\" height=\"387\" srcset=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_4-500x387.png 500w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_4-300x232.png 300w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_4.png 580w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/li>\n<li>A Confirm Your Settings screen will appear. Click Next.<a href=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-137\" alt=\"sharepoint_2013_fba_5\" src=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_5-500x387.png\" width=\"500\" height=\"387\" srcset=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_5-500x387.png 500w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_5-300x232.png 300w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_5.png 580w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/li>\n<li>A &#8220;database has been created or modified&#8221; screen will appear. Click finish and the wizard will close.<a href=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-138\" alt=\"sharepoint_2013_fba_6\" src=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_6-500x387.png\" width=\"500\" height=\"387\" srcset=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_6-500x387.png 500w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_6-300x232.png 300w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_6.png 580w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/li>\n<li>Now that the database has been created, we&#8217;ll have to give SharePoint permissions to read and write to it. We&#8217;re going to connect to the database with Windows Authentication, so we&#8217;re going to have to give those permissions to the service account that is being used to run SharePoint.First, let&#8217;s find out the service account that&#8217;s being used to run SharePoint. Open IIS, go to &#8220;Application Pools&#8221;. Take a look at the &#8220;Identity&#8221; that is being used to run the SharePoint application pools. On my test server, it happens to be my administrator account that is being used, but it will probably be different on your machine. Make note of the identity used.<a href=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_7.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-139\" alt=\"sharepoint_2013_fba_7\" src=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_7-500x287.png\" width=\"500\" height=\"287\" srcset=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_7-500x287.png 500w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_7-300x172.png 300w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_7.png 1148w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/li>\n<li>Now that we know what account is being used to run SharePoint, we can assign it the appropriate permissions to the membership database we created. \u00a0Open up SQL Server Management Studio and log in as an administrator.<a href=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-140\" alt=\"sharepoint_2013_fba_8\" src=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_8-500x311.png\" width=\"500\" height=\"311\" srcset=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_8-500x311.png 500w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_8-300x186.png 300w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_8.png 915w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><br \/>\n<\/a><\/li>\n<li>Under Security\/Logins find the user that SharePoint runs as. \u00a0Assuming this is the same database server that SharePoint was installed on, the user should already exist.Right click on the user and click &#8216;Properties&#8217;.<a href=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_9.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-141\" alt=\"sharepoint_2013_fba_9\" src=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_9-500x396.png\" width=\"500\" height=\"396\" srcset=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_9-500x396.png 500w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_9-300x237.png 300w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_9.png 913w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/li>\n<li>Go to the &#8220;User Mapping&#8221; Page. Check the &#8220;Map&#8221; checkbox for the aspnetdb database. With the aspnetdb database selected, check the &#8220;db_owner&#8221; role membership and click OK. This user should now have full permissions to read and write to the aspnetdb membership database.<a href=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-142\" alt=\"sharepoint_2013_fba_10\" src=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_10-500x448.png\" width=\"500\" height=\"448\" srcset=\"https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_10-500x448.png 500w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_10-300x269.png 300w, https:\/\/blogs.visigo.com\/chriscoulson\/wp-content\/uploads\/2012\/12\/sharepoint_2013_fba_10.png 704w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/li>\n<\/ul>\n<p>Continue to <a title=\"Configuring Forms Based Authentication in SharePoint 2013 \u2013 Part 2 \u2013 Adding users to the Membership Database\" href=\"https:\/\/blogs.visigo.com\/chriscoulson\/configuring-forms-based-authentication-in-sharepoint-2013-part-2-adding-users-to-the-membership-database\/\">Part 2 &#8211; Adding Users to the Membership Database<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Configuring forms based authentication (FBA) in SharePoint 2013 is very similar to SharePoint 2010, but there are some differences due to SharePoint 2013 using .Net 4.0. The web.config entries entries are slightly different. As well, IIS doesn&#8217;t support editing .Net 4.0 membership provider configuration through the IIS interface, so all of the configuration has to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[129,19,5],"tags":[321,94,296,130,20,316,159,294,21,297,291,292,295,293],"class_list":["post-132","post","type-post","status-publish","format-standard","hentry","category-configuration","category-forms-based-authentication","category-sharepoint","tag-net","tag-asp-net","tag-aspnetdb","tag-central-admin","tag-fba","tag-forms-based-authentication","tag-iis","tag-machine-config","tag-membership","tag-membership-provider","tag-sharepoint-2013","tag-sharepoint-2013-fba-pack","tag-sqlmembershipprovider","tag-web-config"],"_links":{"self":[{"href":"https:\/\/blogs.visigo.com\/chriscoulson\/wp-json\/wp\/v2\/posts\/132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.visigo.com\/chriscoulson\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.visigo.com\/chriscoulson\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.visigo.com\/chriscoulson\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.visigo.com\/chriscoulson\/wp-json\/wp\/v2\/comments?post=132"}],"version-history":[{"count":2,"href":"https:\/\/blogs.visigo.com\/chriscoulson\/wp-json\/wp\/v2\/posts\/132\/revisions"}],"predecessor-version":[{"id":203,"href":"https:\/\/blogs.visigo.com\/chriscoulson\/wp-json\/wp\/v2\/posts\/132\/revisions\/203"}],"wp:attachment":[{"href":"https:\/\/blogs.visigo.com\/chriscoulson\/wp-json\/wp\/v2\/media?parent=132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.visigo.com\/chriscoulson\/wp-json\/wp\/v2\/categories?post=132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.visigo.com\/chriscoulson\/wp-json\/wp\/v2\/tags?post=132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}