Provisioning CEWP on Share Point Pages


Project Structure:-

1. Add Default Data to Content Editor Web Part

Create any Pages in Solution and Add necessary tag:-


<asp:Content ContentPlaceHolderId="PlaceHolderPageTitle" runat="server">
<SharePoint:ListItemProperty Property="BaseName" maxlength="40" runat="server" />
</asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server">
<meta name="GENERATOR" content="Microsoft SharePoint" />
<meta name="ProgId" content="SharePoint.WebPartPage.Document" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="CollaborationServer" content="SharePoint Team Web Site" />

</asp:Content>

<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">

<WebPartPages:WebPartZone runat="server" title="loc:TitleBar" id="TitleBar" AllowLayoutChange="false" AllowPersonalization="false" Style="display:none;" >

 </WebPartPages:WebPartZone>

</asp:Content>


Add XML tag in Element File with C-Data tag

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="TestModule" Url="SitePages">

    <File Path="TestModule\asas.aspx" Url="TestModule/asas.aspx" Type="GhostableInLibrary"  >
      <Property Name="Title" Value="CEWP- Provisioning"/>

      <AllUsersWebPart WebPartZoneID="TopZone" WebPartOrder="0">

        <![CDATA[<WebPart xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/WebPart/v2">
                  <Title>Content Editor</Title>
                      <FrameType>Default</FrameType>
                      <Description>Allows authors to enter rich text content.</Description>
                      <IsIncluded>true</IsIncluded>
                      <ZoneID>TopZone</ZoneID>
                      <PartOrder>0</PartOrder>
                      <FrameState>Normal</FrameState>
                      <Height />
                      <Width />
                      <AllowRemove>true</AllowRemove>
                      <AllowZoneChange>true</AllowZoneChange>
                      <AllowMinimize>true</AllowMinimize>
                      <AllowConnect>true</AllowConnect>
                      <AllowEdit>true</AllowEdit>
                      <AllowHide>true</AllowHide>
                      <IsVisible>true</IsVisible>
                      <DetailLink />
                      <HelpLink />
                      <HelpMode>Modeless</HelpMode>
                      <Dir>Default</Dir>
                      <PartImageSmall />
                      <MissingAssembly>Cannot import this Web Part.</MissingAssembly>
                      <PartImageLarge>/_layouts/15/images/mscontl.gif</PartImageLarge>
                      <IsIncludedFilter />
                      <Assembly>Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
                      <TypeName>Microsoft.SharePoint.WebPartPages.ContentEditorWebPart</TypeName>
                      <ContentLink xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor" />
                      <Content xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor"><![CDATA[ ​This is my test Content editor webpart ]]]]><![CDATA[></Content>
                      <PartStorage xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor" />
                      </WebPart>]]>


      </AllUsersWebPart>
      
    </File>
  </Module>
</Elements>


2. Add HTML File link to Content Editor Web Part


Use above code as is and replace the Content Link tag with below mention setting.

Note:- here i am using HTML file reference from style library. 

 <ContentLink xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor">~SiteCollection/Style%20Library/HTMLFiles/abc.html</ContentLink>



Add Print Button to List/Library form in SharePoint 2013 using jQuery


To Add the Print button, Open SharePoint list in browser, go to List Tab -> Customize List Tab -> Form Web Parts and then click on Default Display Form as shown in the fig below:




Then in this page, click on Add a Web Part 
and then from the web part Categories select Media and Content and then select Content Editor web part as shown in the fig below:



Then in the Content Editor web part click on Click here to add new content, then click on FORMAT TEXT -> Markup -> Edit Source as shown in the fig below:



Then in the HTML Souce, Add the below code as shown below:



<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script><script>

$(document).ready(function() {
  $('.printList').click(function() { 
  window.print(); 
  return false; 
  });
});</script>

<style> 
.printList{ 
    color:#666666; 
    font-weight:bold; 
    cursor:pointer; 
}
.printList:hover{ 
color:#333333; 
font-weight:bold; 
cursor:pointer; 
}
</style>
<button class="printList">Print This Item</button>



Configure outgoing Email settings using Gmail in SharePoint


Open Server Manager and then click on Add roles and features under Configure this local server as shown in the fig below:



Then in the Add Roles and Features Wizard click on Next, In the Installation Type, select Role-based or feature-based installation. And then click on Next. In the Server selection select the server (default also selected) and then click on Next. Do not do anything in the Server Roles click Next to go to Features. There check the check box SMTP server Then it will ask for Add features that are required for SMTP server? Click on Add Features. And click on Install. After this we do not need to do anything in this step, just wait that to finish.

Once finish,  Put cursor at right corner of the windows server 2012 and there click on the Search Icon. In the search box type IIS and then Click on Internet Information Services (IIS) 6.0 Manager.


This will open Internet Information Services (IIS) 6.0 Manager, Expand the server and Right click on SMTP Virtual server and Select Start as shown in the fig below:



Again Right click on SMTP Virtual server click on Properties. This will open the [SMTP Virtual server #1] properties dialog box.



In the General Tab, Click on Advanced... button and it will open the Indentification dialog box, IP address (All Unassigned) and then in the TCP port put 587 and click on OK.

Then click on the Access tab from the [SMTP Virtual server #1] properties dialog box. Here click on Authentication... button. Then in the Authentication dialog box, check the Anonymous access check box as shown in the fig below.



Then click on the Connections button and select radio button All Except the list below and click on OK as shown in the fig below.


http://www.sharepointads.com/members/scripts/imp.php?a_aid=enjoysharepoint&a_bid=a5b8afe5&a_rid=c0107ab9


Then click on Relay... button.
 Then in the Relay Restrictions dialog box select All Except the list below button as shown in the fig below and click on OK.



Then go to the Delivery tab and on the Delivery tab, click on Outbound Security, on the new window that opens select Basic Authentication and type your Gmail email and password in the Username and Password fields, and also select TLS encryption 



Then on the Delivery tab, click Outbound connections… and in the new Outbound connections change TCP port to 587 as shown in the fig below:



Then in the Advanced... button, In the Delivery tab, click on Advanced... button and in the Advanced Delivery dialog box in the Smart host field type smtp.gmail.com and in the Fully-qualified domain name, give system name click OK as shown in the fig below.



Then click on Apply and OK.

But here POP should be enabled in Gmail Account. That we can found in Gmail -> Settings -> Forwarding and POP/IMAP.



Now Open SharePoint Central Administration then go to System Settings. And then Click on Configure outgoing e-mail settings as shown in the fig below:



Then in the Outgoing E-Mail Settings, give Outbound SMTP server as smtp.gmail.com, From address as: abc@gmail.com and click on OK as shown in the fig below:



This finishes our configuration.


Integrating Windows Live ID, Google and Facebook Authentications with SharePoint 2013

Federated authentication mechanism handles authentication by external providers which send the token back to SharePoint. So, Instead of we, creating accounts internally (in AD, SQL Server) for external users and partners, We can make use of external authentication providers like Microsoft Live ID Accounts, Google, Yahoo, Facebook accounts (or even external Active Directory - ADFS ) to manage authentication. Its extremely useful with public facing SharePoint sites, isn't it?

This article walks through step by step on integrating Windows Live ID, Google and Facebook account authentications with SharePoint 2013.

To start with, Here are the steps in summary:
  1. We need Windows Azure ACS (Access Control Service) as our Trusted Identity provider. Subscribe and get one.
  2. Add new Identity Provider for SharePoint 2013 with PowerShell.
  3. Authorize users by granting them access to the web application.

Step 1: Configure Azure ACS with required Providers:

Create a Windows Azure Account
We need Windows Azure Access Control Service (ACS) to handle authentication from external entities. From ACS we can to choose Providers like Microsoft Live ID, Google , etc. Create a windows Azure Account - Subscribe for Azure (you must have a Microsoft Live ID & may need credit card).
Go to: https://www.windowsazure.com/en-us/ and register a new account.
Integrating Windows Live ID accounts with with SharePoint 2013

I registered a Trial account with Azure. If you are part of any Windows Azure user groups, you can obtain a free coupon and get Windows Azure 30 days free pass at: http://www.windowsazurepass.com/

Create New Azure Access Control Service
  • Login to Windows Azure Portal, Click on "New" link from the footer pane >> App Services >> Active Directory >> Access Control >> Quick Create. Provide Namespace and location for your ACS service.
  • Once the service is created and activated, Select the ACS and Click on "Manage" link from the footer pane. This takes us to the ACS configuration page.
    Integrating Google Authentications with SharePoint 2013

Configure Azure ACS

There are four settings we got to configure in ACS.
  1. Identity providers
  2. Relying party applications
  3. Rule groups
  4. Certificates and keys
Proceed to the below configurations one by one. 

1. Identity Providers:
  • To start with, click on "Identity Providers" link - You'll notice "Windows Live ID" already listed there. You can add additional providers by clicking "Add" link in Identity Providers Tab. Lets Add "Google"
  • From the list, Choose "Google" and click on "Next" button
  • Click Save button to complete the changes.

Integrate Facebook Authentication with SharePoint 2013:

For Facebook accounts integration with SharePoint 2013, We need to do one more step: Create New Application in Facebook and then add the provider as Facebook in ACS.
  • Go to Facebook Apps, https://developers.facebook.com/apps
  • Create new Facebook Application
  • Give it a App Name and App Namespace. Click on "Continue"
  • Provide the Website with Facebook Log-in as: https://{your ACS Namespace}.accesscontrol.windows.net
  • Click Save Changes.
Now, in ACS: 
  • Add new "Facebook Application" identity provider and Click Next 
    sharepoint 2013 facebook authentication
  • Enter Application ID, Application Secret values from Facebook application.sharepoint 2013 facebook integration
  • Click on save to complete your changes. Now our identity providers page contains these three identity providers:
2. Relying party applications:
Relying party application is generally a web site or application that uses ACS for Authentication. Here in our case, Its our SharePoint site. So, Lets create a Relying party Application. 
  • Go to Relying Party Applications Tab, Click on "Add"
  • Enter the below parameters: Give it a Name (can be anything)
  • Specify the "Realm" as your SharePoint Web Application's URL (Say: http://extranet.crescent.com")
  • In Return URL, Just append /_trust , So, in our case, Its:  http://extranet.crescent.com/_trust
  • Token format should be SAML 1.1
  • Set the Token timeout value to 3600
  • Make sure "Create new rule Group" is checked and click "Save" button
  • 3. Rule groups:
    • Click on "Default Rule Group for http://extranet.crescent.com"
    • Under rules, You'll get a message: "No rules have been added. Click on "Generate" link just above "Rules" section
    • Select the providers, Hit Generate button again on the apps presented. Click on "Save"
    • If you visit the default Rule group again, You will see the mapping fields used by these providers.
    You can also map additional properties from providers.

    4. Certificates and keys:
    We have to Encrypt the traffic between ACS and our SharePoint environment by exchanging certificate between Azure ACS and SharePoint. So, we need a Digital certificate. You can create SSL certificate from development environments with MakeCert.exe.

    MakeCert.exe is part of Windows SDK. You can download it from: http://go.microsoft.com/fwlink/p/?linkid=84091 .MakeCert lives under: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\BinSo, in command prompt: enter: 

    C:\>cd "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin"


    MakeCert.exe -r -pe -n "CN=crescent.accesscontrol.windows.net" -sky exchange -ss my -len 2048 -e 11/15/2014 

    This will generate the certificate and install it automatically to the trusted certificate store. Or you can use:
    MakeCert.exe -r -pe -n "CN=crescent.accesscontrol.windows.net" -sky exchange -ss my -len 2048 -e 11/15/2014 -sv "c:\Extranet.pvk" "c:\Extranet.cer "

    If makecert.exe is not available, Use IIS self signed certificate creation with the specified common name, and the export the .CER & PFX files from Certificates Snap-in through MMC.
      
    Import the Certificate to ACS: 
    • Once certificate is generate, on the certificates and keys tab, Click on "Add link"
    • Browse to the certificate created (.pfx), provide password of it and then click "Save"
    Warning: MakeCert.exe is not recommended for Production environments!

  

Step 2: Add new Trusted identity Provider as Azure ACS

Step 3: Authorize users by granting them access to the web application.

    Associate Authentication provider to the target web Application: 
    • Go to Central Admin >> Application Management >> Manage Web Applications
    • Select the web application you want to enable Federated Authentication
    • Click on "Authentication Providers" from Ribbon >> Click on 'the "Default" link >> Scroll down
    • Enable "Live ID/Google/Facebook" under "Trusted Identity Provider section
    Grant Users Access:
    So the authentication part is over. we've to handle authorization from SharePoint side, as we do for Windows AD accounts. Lets create a user policy to grant all users of the trusted identity provider to Read access to all sites in the web application (Otherwise, They'll get "Access denied" error message.
    • Go back to Manage web applications page, Click on "User Policy" button from the ribbon. 
    • Click on Add Users
    • Choose All zones and click Next
    • Under Uses section, Browse and select "All Users"
    • Select "Full Read" permission and Click Finish.
    Unit Test: 
    That's all! we are done!!
    • Hit the SharePoint Web Application URL. Users presented with login page.
    • From the list, choose "Windows Live ID/Google/Facebook"Integrating Windows Live ID, Google and Facebook Authentications with SharePoint 2013
    • Choose the appropriate login provider which takes us to the appropriate login screens.
    Verify users are able to access SharePoint site with Google & Facebook accounts. Here are some screen shots:


Ref:
http://social.technet.microsoft.com/wiki/contents/articles/22309.integrating-windows-live-id-google-and-facebook-accounts-with-sharepoint-2013-white-paper.aspx