Per attivare la Form Based Authentication in SharePoint 2010, in questo esempio basata su un database SQL Server, è necessario avere una web application configurata con la Claims autentication.
Fatto questo puoi creare il database SQL Server, che conterrà gli utenti. Il database viene creato tramite comando aspnet_regsql.exe (standard del Framework .NET 2.0).
Apri una linea di comando e digita:
DOS / Batch file
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regsql.exe
parte un wizard in cui va specificato il nome del server di database, le eventuali credenziali di connessione e il nome del database e che conterrà gli utenti (nell'esempio i server è SharePointDB e il database e è WSS_FBA_Users).
Per quanto riguarda le credenziali è meglio utilizzare l'autenticazione integrata di windows e dare, tramite la Management Console, accesso al database e all'utente con cui gira l'application pool delle web application convolte.

In seguito vanno modificati almeno 3 web.config:
  • quello/i del/i sito/i di content (web application)
  • quello della Central Administration
  • quello del SecurityTokenServiceApplication (STS)

Quindi il web config del sito/i sarà:
XML
<configuration>
  <SharePoint>
    ...
    <PeoplePickerWildcards>
      <clear />
      <add key="FBA" value="%" />
    </PeoplePickerWildcards>
    ...
  </SharePoint>
  <system.web>
    ...
    <membership defaultProvider="i">
      <providers>
        <add name="i" 
                 type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
        <add name="FBA" 
                 type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                 connectionStringName="FBAConnectionString" 
                 applicationName="/" 
                 passwordAttemptWindow="5" enablePasswordRetrieval="false" enablePasswordReset="false" 
                 requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Hashed" />
      </providers>
    </membership>
  </system.web>     
  <connectionStrings>
    <add name="FBAConnectionString" connectionString="Server=SharePointDB;Database=WSS_FBA_Users;Integrated Security=true" />
  </connectionStrings>
</configuration>

Qello della Central Admin sarà:
XML
<configuration>
    ...
  <system.web>
    ...
    <membership>
      <providers>
        <add name="FBA" 
                type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                connectionStringName="FBAConnectionString" 
                applicationName="/" 
                passwordAttemptWindow="5" enablePasswordRetrieval="false" enablePasswordReset="false"
                requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Hashed" />
      </providers>
    </membership>
  </system.web>     
  <connectionStrings>
    <add name="FBAConnectionString" connectionString="Server=SharePointDB;Database=WSS_FBA_Users;Integrated Security=true" />
  </connectionStrings>
</configuration>

Ed infine quello dell'STS
XML
<configuration>
  <SharePoint>
    ...
    <PeoplePickerWildcards>
      <clear />
      <add key="FBA" value="%" />
    </PeoplePickerWildcards>
    ...
  </SharePoint>
  <system.web>
    ...
    <membership defaultProvider="i">
      <providers>
        <add name="i" 
                 type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
        <add name="FBA" 
                 type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                 connectionStringName="FBAConnectionString" 
                 applicationName="/" 
                 passwordAttemptWindow="5" enablePasswordRetrieval="false" enablePasswordReset="false" 
                 requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Hashed" />
      </providers>
    </membership>
  </system.web>     
  <connectionStrings>
    <add name="FBAConnectionString" connectionString="Server=SharePointDB;Database=WSS_FBA_Users;Integrated Security=true" />
  </connectionStrings>
</configuration>
In ultimo, dalla Central administration, vai in Manage web applications, seleziona la web application con la claims abilitata, clicca su Authentication providers, clicca su Default, spunta la voce Enable Forms Based Authentication (FBA) e in ASP.NET Membership provider name inserisci il nome del membership provider (nell'esempio: FBA). Questo va ripetuto per tutte le web applications in cui si vuole abilitare la Form Based Authentication.

Fatto questo è possibile inserire nuovi utenti nel DB .
Per l'inserimento è possibile utilizzare IIS 7, la procedura è questa:
  • andare in IIS è selezionare il sito della Central Administration
  • doppio click sull'icona .NET Users
  • nel pannello di destra cliccare su Add...
  • inserisci i dati richiesti e premi Next, poi Finish
oppure usare questa solution su codeplex SharePoint 2010 FBA Pack
Potrebbe interessarti anche: