Installation

Pre-requisites

-          Installed and configured Microsoft SharePoint 2010,

-          Installed and configured Microsoft Windows Server AppFabric,

-          Installed Microsoft Silverlight 4.0,

-          SQL server 2008 R2 instance running on the local environment.

Pre-requirements

-          Copy “Install” folder to drive C.

-          Create SharePoint Web Application using local machine or Active Directory Account
as application pool identity.

-          Execute all scripts as administrator.

Install database for forms based authentication

a)      Navigate to ASPNetDB folder.

b)      Change server name (default: “My_SQL-Server”) and data base named instance
in CallAspNet_ReqSql.exe.config config file.

c)       Execute CallAspNet_ReqSql.exe application.

Create Business Data Connectivity Service

a)      Navigate to BDCService folder,

b)      Change database server name (default: “My_SQL-Server”) in NewBDCApp.ps1 script (do not change BDC service application name: parameter “–Name”),

c)       Run NewBDCApp.ps1 powershell script.

Create Customer Care Portal Database

a)      Navigate to CCPDB folder

b)      Run create_database.bat script

Configure Claims Based Authentication

a)      Reproduce the steps from article http://technet.microsoft.com/en-us/library/gg251985.aspx

b)      Set your Web Application provider to Claims Based Authentication Provider

c)       Configure web.config file, as described in article
http://technet.microsoft.com/en-us/library/ee806890.aspx

Web.config sample values:

CCP site:

<connectionStrings>
   <add name="SQLConnectionString" connectionString="data source=My_SQL-Server;Integrated Security=SSPI;Initial Catalog=aspnetdb" />
</connectionStrings>

In <system.web> tags:

<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 connectionStringName="SQLConnectionString" passwordAttemptWindow="5" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="true" passwordFormat="Hashed" description="Stores and Retrieves membership data from SQL Server" name="SQL-MembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
     </providers>
</membership>
<roleManager cacheRolesInCookie="false" defaultProvider="c" enabled="true">
     <providers>
       <add name="c" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
       <add connectionStringName="SQLConnectionString" applicationName="/" description="Stores and retrieves roles from SQL Server" name="SQL-RoleManager" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
     </providers>
</roleManager>

Security Token Service:

<connectionStrings>
   <add name="SQLConnectionString" connectionString="data source=My_SQL-Server;Integrated Security=SSPI;Initial Catalog=aspnetdb" />
</connectionStrings>

In <system.web> tags:

<membership defaultProvider="SQL-MembershipProvider">
     <providers>
       <add name="i" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
       <add connectionStringName="SQLConnectionString" passwordAttemptWindow="5" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="true" passwordFormat="Hashed" description="Stores and Retrieves membership data from SQL Server" name="SQL-MembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
     </providers>
</membership>
<roleManager defaultProvider="c" enabled="true" cacheRolesInCookie="false">
     <providers>
       <add name="c" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
       <add connectionStringName="SQLConnectionString" applicationName="/" description="Stores and retrieves roles from SQL Server" name="SQL-RoleManager" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
     </providers>
</roleManager>


 

Install SharePoint solutions

a)      Navigate to SharePointSolutions folder.

b)      Set your site address (siteUrl), SQL server address (serverDataSource), email (owneremail), site administrator login (ownerlogin) and check SharePoint 2010 stsadm.exe tool location (stsadm) in deploy.bat script.

c)       Run deploy.bat script.

Install AppFabric Services

a)      Make sure you have msdeploy.exe tool installed (check “C:\Program Files (x86)\IIS\Microsoft Web Deploy” path). If not, obtain it from here http://go.microsoft.com/?linkid=9278654 .

b)      Navigate to AppFabric folder,

c)       Navigate to ActivationWorkflow folder,

d)      Set your IIS Web Application Name in ActivationWorkflow.SetParameters.xml file,

e)      Do the same in ClientSubscriptionWorkflow folder,

f)       Run install.bat script,

g)      Add following lines to your SharePoint Web Application web.config in system.serviceModel section:

<bindings>

     <basicHttpBinding>

       <binding name="BasicHttpBinding_ActivationWorkflow"

closeTimeout="00:10:00"

openTimeout="00:10:00"

receiveTimeout="00:10:00"

sendTimeout="00:10:00"

allowCookies="false"

bypassProxyOnLocal="false"

hostNameComparisonMode="StrongWildcard"

maxBufferSize="65536"

maxBufferPoolSize="524288"

maxReceivedMessageSize="65536"

messageEncoding="Text"

textEncoding="utf-8"

transferMode="Buffered"

useDefaultWebProxy="true">

         <readerQuotas maxDepth="32"

maxStringContentLength="8192"

maxArrayLength="16384"

maxBytesPerRead="4096"

maxNameTableCharCount="16384" />

         <security mode="None">

         <transport   clientCredentialType="None"

proxyCredentialType="None"

realm="" />

          <message     clientCredentialType="UserName"

algorithmSuite="Default" />

         </security>

       </binding>

       <binding name="BasicHttpBinding_ClientSubscriptionWorkflow"

closeTimeout="00:10:00"

openTimeout="00:10:00"

receiveTimeout="00:10:00"

sendTimeout="00:10:00"

allowCookies="false"

bypassProxyOnLocal="false"

hostNameComparisonMode="StrongWildcard"

maxBufferSize="65536"

maxBufferPoolSize="524288"

maxReceivedMessageSize="65536"

messageEncoding="Text"

textEncoding="utf-8"

transferMode="Buffered"

useDefaultWebProxy="true">

         <readerQuotas maxDepth="32"

maxStringContentLength="8192"

maxArrayLength="16384"

maxBytesPerRead="4096"

maxNameTableCharCount="16384" />

         <security mode="None">

         <transport   clientCredentialType="None"

proxyCredentialType="None"

realm="" />

           <message   clientCredentialType="UserName"

algorithmSuite="Default" />

         </security>

       </binding>

     </basicHttpBinding>

   </bindings>

   <client>

<endpoint

address="http://localhost/ActivationWorkflow/ActivationWorkflow.xamlx"

binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ActivationWorkflow" contract="ActivationWorkflowReference.IService" name="BasicHttpBinding_ActivationWorkflow" />

<endpoint

address="http://localhost/ClientSubscriptionWorkflow/ClientSubscriptionWorkflow.xamlx"

binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ClientSubscriptionWorkflow" contract="ClientSubscriptionWorkflowReference.IService" name="BasicHttpBinding_ClientSubscriptionWorkflow" />

</client>

 

h)      Make sure that endpoint address entries points to your IIS Web Application ,

i)        Make sure your IIS Web Application pool runs .NET 4.0 version,

j)        Make sure your IIS Web Application pool Identity is the same as your SharePoint Web Application pool Identity.

Configure BDC Lob Service

a)      Open SharePoint 2010 Central Administration,

b)      Navigate to Manager service applications link under Application Management group,

c)       Navigate to BDC service application proxy that you have created,

d)      On the Ribbon select External Systems in View drop down,

e)      Select CCPDB external system and click Set Object Permissions Ribbon action,

f)       Add your SharePoint Web Application pool Identity and give it all full permissions,

g)      Check “Propagate permissions to all External Content Types that belong to this External System. Doing so will overwrite existing permissions” and click OK,

h)      Repeat steps: e), f), g) for BDC_CD_Billings external system,

i)        Click CCPDB external system,

j)        Select CCPDB external system instance and click Settings Ribbon action,

k)      Set:

  • ·         Authentication mode = BDC Identity
  • ·         Database Server = your database server (“My_SQL-Server”) with Customer Care Portal Database
  • ·         Initial Database Name = CCPDB
  • ·         Integrated security = SSPI
  • ·         Connection Pooling = Checked

InfoPath contact form

a)      Navigate to InfoPathForm folder,

b)      Run prepareContactForm.bat script with three attributes:

  • §  Url address to Customer Care Portal  Root  Web,
  • §  ID of CorespondenceHistory List from CustomerPortal site (~SiteCollection/CustomerPortal/Lists/CorrespondenceHistory),
  • §  ID of ContentType CorrespondenceHistory from CorrespondenceHistory List,

 

c)       Open manifest.xsf  file in InfoPath Designer 2010,

d)      Publish Form to SharePoint List.

Security recommendations

                Customer Care Portal solution uses a basic security configuration, assuming that all critical services runs with the same credentials as the SharePoint 2010 Web Application pool.
Summarizing, the same account should be used in the following contexts:

  • ·         SharePoint Web Application Pool account,
  • ·         AppFabric Web Site Application Pool account,
  • ·         Customer Care Portal Database owner,
  • ·        

 

 

Last edited May 26, 2011 at 8:27 PM by ArturZarski, version 1

Comments

No comments yet.