SharePoint 2013: Import, validate, and manage app licenses

Learn how to import and manage app licenses, as well as how to retrieve, validate, and communicate licensing states in your apps for SharePoint. Using the tools in the sample, developers can import test licenses, validate licenses, and manage license assignment within SharePoint.

C# (2.2 MB)
 
 
 
 
 
4.4 Star
(5)
1,425 times
Add to favorites
6/20/2013
E-mail Twitter del.icio.us Digg Facebook

Solution explorer

C#
<html xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mtps="http://msdn2.microsoft.com/mtps" xmlns:mshelp="http://msdn.microsoft.com/mshelp" xmlns:ddue="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:msxsl="urn:schemas-microsoft-com:xslt"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" /><META NAME="BuildDateTime" CONTENT="2013-06-13 15:12:36" /><META NAME="BuildVersion" CONTENT="1.0.13164.1512" /><META NAME="save" CONTENT="history" /><META NAME="DCSext.Title" CONTENT="SharePoint 2013: Import, validate, and manage app licenses" /><title>SharePoint 2013: Import, validate, and manage app licenses</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="e7f59941-0447-41f1-bf25-8ff65b604871" /><meta name="Microsoft.Help.ContentType" content="Concepts" /><style type="text/css">
                        .userDataStyle {
                        BEHAVIOR: url(#default#userData)
                        }
                        DIV.saveHistory {
                        BEHAVIOR: url(#default#savehistory)
                        }
                        IMG.toggle {
                        BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; MARGIN-RIGHT: 5px; BORDER-RIGHT: 0px
                        }
                        IMG#toggleAllImage {
                        MARGIN-LEFT: 0px; VERTICAL-ALIGN: middle
                        }
                        MSHelp\:link {
                        COLOR: #0000ff; CURSOR: hand; TEXT-DECORATION: underline; hoverColor: #3366ff
                        }
                        MSHelp\:link:visited {
                        COLOR: #0481da
                        }
                        BODY {
                        FONT-STYLE: normal; MARGIN: 0px; WIDTH: 100%; FONT-FAMILY: Verdana; BACKGROUND: #ffffff; COLOR: #000000; FONT-SIZE: medium; FONT-WEIGHT: normal
                        }
                        DL {
                        MARGIN-TOP: 15px; PADDING-LEFT: 1px; MARGIN-BOTTOM: 5px
                        }
                        DL.authored DT {
                        MARGIN-TOP: 2px
                        }
                        DD {
                        MARGIN-LEFT: 0px
                        }
                        UL {
                        LIST-STYLE-TYPE: disc; MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 17px
                        }
                        UL UL {
                        LIST-STYLE-TYPE: disc; MARGIN-TOP: 3px; MARGIN-BOTTOM: 4px; MARGIN-LEFT: 17px
                        }
                        OL {
                        LIST-STYLE-TYPE: decimal; MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 28px
                        }
                        OL OL {
                        LIST-STYLE-TYPE: lower-alpha; MARGIN-TOP: 3px; MARGIN-BOTTOM: 4px; MARGIN-LEFT: 28px
                        }
                        OL OL OL {
                        LIST-STYLE-TYPE: lower-roman; MARGIN-TOP: 3px; MARGIN-BOTTOM: 4px; MARGIN-LEFT: 28px
                        }
                        LI {
                        MARGIN-TOP: 5px; MARGIN-BOTTOM: 5px
                        }
                        P {
                        MARGIN-TOP: 10px; MARGIN-BOTTOM: 5px
                        }
                        A:link {
                        COLOR: #0000ff
                        }
                        A:visited {
                        COLOR: #dd7c3b
                        }
                        A:hover {
                        COLOR: #3366ff
                        }
                        CODE {
                        FONT-FAMILY: Monospace, Courier New, Courier; COLOR: #000066; FONT-SIZE: 105%
                        }
                        SPAN.parameter {
                        FONT-STYLE: italic
                        }
                        SPAN.italic {
                        FONT-STYLE: italic
                        }
                        SPAN.selflink {
                        FONT-WEIGHT: bold
                        }
                        SPAN.nolink {
                        FONT-WEIGHT: bold
                        }
                        DIV#mainSection {
                        WIDTH: 100%; FONT-SIZE: 62.5%
                        }
                        HTML &gt; BODY #mainSection {
                        WIDTH: 100%; FONT-SIZE: 73%
                        }
                        DIV#mainBody {
                        MARGIN-TOP: 10px; MARGIN-LEFT: 15px; FONT-SIZE: 100%
                        }
                        HTML &gt; BODY #mainBody {
                        PADDING-BOTTOM: 20px; MARGIN-TOP: 10px; MARGIN-LEFT: 15px; FONT-SIZE: 93%
                        }
                        DIV#mainBody P {
                        PADDING-RIGHT: 5px
                        }
                        DIV#mainBody OL {
                        PADDING-RIGHT: 5px
                        }
                        DIV#mainBody UL {
                        PADDING-RIGHT: 5px
                        }
                        DIV#mainBody DL {
                        PADDING-RIGHT: 5px
                        }
                        DIV#header {
                        PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; PADDING-TOP: 0px
                        }
                        DIV#header TABLE {
                        WIDTH: 100%
                        }
                        DIV#header TABLE TD {
                        MARGIN-TOP: 0px; PADDING-RIGHT: 20px; MARGIN-BOTTOM: 0px; COLOR: #0000ff; FONT-SIZE: 70%
                        }
                        DIV#header TABLE TR#headerTableRow2 TD {
                        PADDING-LEFT: 13px
                        }
                        DIV#header TABLE TR#headerTableRow3 TD {
                        PADDING-LEFT: 15px; PADDING-TOP: 2px
                        }
                        DIV#header TABLE#bottomTable {
                        TEXT-ALIGN: left; PADDING-BOTTOM: 5px; PADDING-LEFT: 15px; BORDER-TOP: #ffffff 1px solid; PADDING-TOP: 5px
                        }
                        DIV#mainSection TABLE TD.imageCell {
                        WHITE-SPACE: nowrap
                        }
                        DIV#mainBody DIV.alert {
                        WIDTH: 98.9%
                        }
                        DIV#mainBody DIV.code {
                        WIDTH: 98.9%
                        }
                        DIV#mainBody DIV.tableSection {
                        WIDTH: 98.9%
                        }
                        DIV#mainBody DIV.section DIV.alert {
                        WIDTH: 100%
                        }
                        DIV#mainBody DIV.section DIV.code {
                        WIDTH: 100%
                        }
                        DIV#mainBody DIV.section DIV.tableSection {
                        WIDTH: 100%
                        }
                        DIV#mainBody DIV.section UL DIV.alert {
                        WIDTH: 100%
                        }
                        DIV#mainBody DIV.section UL DIV.code {
                        WIDTH: 100%
                        }
                        DIV#mainBody DIV.section UL DIV.tableSection {
                        WIDTH: 100%
                        }
                        DIV#mainBody DIV.section OL DIV.alert {
                        WIDTH: 100%
                        }
                        DIV#mainBody DIV.section OL DIV.code {
                        WIDTH: 100%
                        }
                        DIV#mainBody DIV.section OL DIV.tableSection {
                        WIDTH: 100%
                        }
                        DIV.alert P {
                        MARGIN-TOP: 5px; MARGIN-BOTTOM: 8px
                        }
                        DIV.code P {
                        MARGIN-TOP: 5px; MARGIN-BOTTOM: 8px
                        }
                        DD P {
                        MARGIN-TOP: 2px; MARGIN-BOTTOM: 8px
                        }
                        DIV.tableSection P {
                        MARGIN-TOP: 1px; MARGIN-BOTTOM: 4px
                        }
                        LI P {
                        MARGIN-TOP: 2px; MARGIN-BOTTOM: 2px
                        }
                        DIV.seeAlsoNoToggleSection DL {
                        MARGIN-TOP: 8px; PADDING-LEFT: 1px; MARGIN-BOTTOM: 1px
                        }
                        DIV.seeAlsoNoToggleSection DD P {
                        MARGIN-TOP: 2px; MARGIN-BOTTOM: 8px
                        }
                        DIV.section DL {
                        MARGIN-TOP: 8px; PADDING-LEFT: 1px; MARGIN-BOTTOM: 1px
                        }
                        DIV.section DD P {
                        MARGIN-TOP: 2px; MARGIN-BOTTOM: 8px
                        }
                        DIV.code TABLE {
                        BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN-TOP: -0.4em; WIDTH: 100%; MARGIN-BOTTOM: 5px; FONT-SIZE: 95%; BORDER-TOP: 0px; BORDER-RIGHT: 0px
                        }
                        DIV.code TABLE TH {
                        BORDER-BOTTOM: #c8cdde 1px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BACKGROUND: #efeff7; COLOR: #000066; FONT-WEIGHT: bold
                        }
                        DIV.code TABLE TD {
                        PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BACKGROUND: #f7f7ff; BORDER-TOP: #ffffff 1px solid; PADDING-TOP: 5px
                        }
                        SPAN#runningHeaderText {
                        PADDING-LEFT: 13px; COLOR: #8c8c8c; FONT-SIZE: 90%
                        }
                        SPAN#nsrTitle {
                        FONT-FAMILY: arial; COLOR: #000000; FONT-SIZE: 160%; FONT-WEIGHT: 400
                        }
                        DIV#footer {
                        PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 1px; WIDTH: 100%; PADDING-RIGHT: 1px; FONT-SIZE: 80%; PADDING-TOP: 8px
                        }
                        HTML &gt; BODY DIV#footer {
                        PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 1px; WIDTH: 98%; PADDING-RIGHT: 1px; FONT-SIZE: 80%; PADDING-TOP: 2px
                        }
                        DIV.seeAlsoNoToggleSection {
                        PADDING-BOTTOM: 2px; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 15px; MARGIN-LEFT: 0px; PADDING-TOP: 2px
                        }
                        DIV.section {
                        PADDING-BOTTOM: 0px; PADDING-LEFT: 16px; WIDTH: 100%; PADDING-RIGHT: 15px; MARGIN-LEFT: 0px; PADDING-TOP: 0px
                        }
                        HTML &gt; BODY DIV.section {
                        PADDING-BOTTOM: 2px; PADDING-LEFT: 16px; WIDTH: 97%; PADDING-RIGHT: 15px; MARGIN-LEFT: 0px; PADDING-TOP: 2px
                        }
                        DIV.seeSection {
                        PADDING-BOTTOM: 2px; PADDING-LEFT: 16px; WIDTH: 100%; PADDING-RIGHT: 15px; MARGIN-LEFT: 0px; PADDING-TOP: 0px
                        }
                        .heading {
                        MARGIN-TOP: 18px; MARGIN-BOTTOM: 8px; FONT-WEIGHT: bold
                        }
                        H1.heading {
                        COLOR: #003399; FONT-SIZE: 145%
                        }
                        .subHeading {
                        MARGIN-BOTTOM: 4px; FONT-WEIGHT: bold
                        }
                        .procedureSubHeading {
                        MARGIN-BOTTOM: 4px; FONT-WEIGHT: bold
                        }
                        H3.subHeading {
                        COLOR: #003399; FONT-SIZE: 125%; FONT-WEIGHT: 800
                        }
                        H3.procedureSubHeading {
                        COLOR: #003399; FONT-SIZE: 100%
                        }
                        H4.subHeading {
                        FONT-VARIANT: small-caps; COLOR: #003399; FONT-SIZE: 110%; FONT-WEIGHT: 800
                        }
                        SPAN.labelheading {
                        COLOR: #003399; FONT-SIZE: 100%
                        }
                        DIV.labelheading {
                        COLOR: #003399; FONT-SIZE: 100%
                        }
                        IMG.copyCodeImage {
                        BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 1px 3px 1px 1px; BORDER-TOP: 0px; BORDER-RIGHT: 0px
                        }
                        IMG.downloadCodeImage {
                        BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; MARGIN-RIGHT: 3px; BORDER-RIGHT: 0px
                        }
                        IMG.viewCodeImage {
                        BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; MARGIN-RIGHT: 3px; BORDER-RIGHT: 0px
                        }
                        IMG.note {
                        BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; MARGIN-RIGHT: 3px; BORDER-RIGHT: 0px
                        }
                        DIV#mainSection TABLE {
                        BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN-TOP: 5px; WIDTH: 98.9%; MARGIN-BOTTOM: 5px; FONT-SIZE: 100%; BORDER-TOP: 0px; BORDER-RIGHT: 0px
                        }
                        DIV#mainSection TABLE TR {
                        VERTICAL-ALIGN: top
                        }
                        DIV#mainSection TABLE TH {
                        BORDER-BOTTOM: #c8cdde 1px solid; TEXT-ALIGN: left; BORDER-LEFT: #d5d5d3 1px; BACKGROUND-COLOR: #efeff7; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; COLOR: #000066
                        }
                        DIV#mainSection TABLE TD {
                        BORDER-BOTTOM: #d5d5d3 1px solid; BORDER-LEFT: #d5d5d3 1px; BACKGROUND-COLOR: #f7f7ff; PADDING-LEFT: 5px; PADDING-RIGHT: 5px
                        }
                        DIV#mainSection TABLE TD.imageCell {
                        WHITE-SPACE: nowrap
                        }
                        DIV.code TABLE {
                        BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; WIDTH: 100%; MARGIN-BOTTOM: 5px; FONT-SIZE: 95%; BORDER-TOP: 0px; BORDER-RIGHT: 0px
                        }
                        DIV.code TABLE TH {
                        BORDER-BOTTOM: #c8cdde 1px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BACKGROUND: #efeff7; COLOR: #000066; FONT-WEIGHT: bold
                        }
                        DIV.code TABLE TD {
                        PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BACKGROUND: #f7f7ff; BORDER-TOP: #ffffff 1px solid; PADDING-TOP: 5px
                        }
                        DIV.alert TABLE {
                        BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; WIDTH: 100%; FONT-SIZE: 100%; BORDER-TOP: 0px; BORDER-RIGHT: 0px
                        }
                        DIV.alert TABLE TH {
                        PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BACKGROUND: #efeff7; BORDER-BOTTOM-WIDTH: 0px; COLOR: #000066
                        }
                        DIV.alert TABLE TD {
                        PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BACKGROUND: #f7f7ff; BORDER-TOP: #ffffff 1px solid
                        }
                        SPAN.copyCode {
                        TEXT-ALIGN: right; DISPLAY: inline; FLOAT: right; COLOR: #0000ff; FONT-SIZE: 90%; CURSOR: pointer; FONT-WEIGHT: normal; TEXT-DECORATION: underline
                        }
                        SPAN.copyCodeOnHover {
                        TEXT-ALIGN: right; DISPLAY: inline; FLOAT: right; COLOR: #e85f17; FONT-SIZE: xx-small; CURSOR: pointer; FONT-WEIGHT: normal; TEXT-DECORATION: underline
                        }
                        .downloadCode {
                        COLOR: #0000ff; FONT-SIZE: 90%; CURSOR: pointer; FONT-WEIGHT: normal
                        }
                        .viewCode {
                        COLOR: #0000ff; FONT-SIZE: 90%; CURSOR: pointer; FONT-WEIGHT: normal
                        }
                        DIV.code PRE {
                        FONT-FAMILY: Monospace, Courier New, Courier; WORD-WRAP: break-word; BACKGROUND: #f7f7ff; COLOR: #000066; FONT-SIZE: 105%
                        }
                        .tip {
                        FONT-STYLE: italic; COLOR: #0000ff; CURSOR: pointer; TEXT-DECORATION: underline
                        }
                        .math {
                        FONT-FAMILY: Times New Roman; FONT-SIZE: 125%
                        }
                        #devlangsMenu {
                        BORDER-BOTTOM: #f3cbb5 1px solid; POSITION: absolute; BORDER-LEFT: #f3cbb5 1px solid; PADDING-BOTTOM: 4px; PADDING-LEFT: 4px; PADDING-RIGHT: 8px; BACKGROUND: #fcece4; VISIBILITY: hidden; FONT-SIZE: 70%; BORDER-TOP: #f3cbb5 1px solid; BORDER-RIGHT: #f3cbb5 1px solid; PADDING-TOP: 4px
                        }
                        #memberOptionsMenu {
                        BORDER-BOTTOM: #f3cbb5 1px solid; POSITION: absolute; BORDER-LEFT: #f3cbb5 1px solid; PADDING-BOTTOM: 4px; PADDING-LEFT: 4px; PADDING-RIGHT: 8px; BACKGROUND: #fcece4; VISIBILITY: hidden; FONT-SIZE: 70%; BORDER-TOP: #f3cbb5 1px solid; BORDER-RIGHT: #f3cbb5 1px solid; PADDING-TOP: 4px
                        }
                        #memberFrameworksMenu {
                        BORDER-BOTTOM: #f3cbb5 1px solid; POSITION: absolute; BORDER-LEFT: #f3cbb5 1px solid; PADDING-BOTTOM: 4px; PADDING-LEFT: 4px; PADDING-RIGHT: 8px; BACKGROUND: #fcece4; VISIBILITY: hidden; FONT-SIZE: 70%; BORDER-TOP: #f3cbb5 1px solid; BORDER-RIGHT: #f3cbb5 1px solid; PADDING-TOP: 4px
                        }
                        .checkboxLabel {
                        PADDING-BOTTOM: 4px; COLOR: #0000ff; FONT-SIZE: 90%; CURSOR: pointer; TEXT-DECORATION: underline
                        }
                        IMG#devlangsDropdownImage {
                        BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN-LEFT: 0px; VERTICAL-ALIGN: middle; BORDER-TOP: 0px; BORDER-RIGHT: 0px
                        }
                        IMG#memberOptionsDropdownImage {
                        BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN-LEFT: 0px; VERTICAL-ALIGN: middle; BORDER-TOP: 0px; BORDER-RIGHT: 0px
                        }
                        IMG#memberFrameworksDropdownImage {
                        BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN-LEFT: 0px; VERTICAL-ALIGN: middle; BORDER-TOP: 0px; BORDER-RIGHT: 0px
                        }
                        DIV.footerLine {
                        PADDING-BOTTOM: 6px; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 8px
                        }
                        DIV.hr1 {
                        PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; BACKGROUND: #c8cdde; HEIGHT: 1px; FONT-SIZE: 1px; PADDING-TOP: 0px
                        }
                        DIV.hr2 {
                        PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; BACKGROUND: #d4dfff; HEIGHT: 1px; FONT-SIZE: 1px; PADDING-TOP: 0px
                        }
                        DIV.hr3 {
                        PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; BACKGROUND: #eeeeff; HEIGHT: 1px; FONT-SIZE: 1px; PADDING-TOP: 0px
                        }
                        SPAN.cs {
                        DISPLAY: none
                        }
                        SPAN.vb {
                        DISPLAY: none
                        }
                        SPAN.cpp {
                        DISPLAY: none
                        }
                        SPAN.nu {
                        DISPLAY: inline
                        }
                        SPAN.fs {
                        DISPLAY: none
                        }
                        SPAN.code {
                        FONT-FAMILY: Monospace, Courier New, Courier; COLOR: #000066; FONT-SIZE: 105%
                        }
                        SPAN.ui {
                        FONT-WEIGHT: bold
                        }
                        SPAN.math {
                        FONT-STYLE: italic
                        }
                        SPAN.input {
                        FONT-WEIGHT: bold
                        }
                        SPAN.term {
                        FONT-STYLE: italic
                        }
                        SPAN.label {
                        FONT-WEIGHT: bold
                        }
                        SPAN.foreignPhrase {
                        FONT-STYLE: italic
                        }
                        SPAN.placeholder {
                        FONT-STYLE: italic
                        }
                        SPAN.keyword {
                        FONT-WEIGHT: bold
                        }
                        SPAN.typeparameter {
                        FONT-STYLE: italic
                        }
                        DIV.caption {
                        COLOR: #003399; FONT-SIZE: 100%; FONT-WEIGHT: bold
                        }
                        DIV.code SPAN.identifier {

                        }
                        DIV.code SPAN.keyword {
                        COLOR: #871f78
                        }
                        DIV.code SPAN.parameter {
                        FONT-STYLE: italic
                        }
                        DIV.code SPAN.literal {
                        COLOR: #8b0000
                        }
                        DIV.code SPAN.comment {
                        COLOR: #006400
                        }
                        SPAN.syntaxLabel {
                        COLOR: #0481da; FONT-WEIGHT: bold
                        }
                        SPAN.introStyle {
                        COLOR: darkgray
                        }
                        DIV.seeAlsoStyle {
                        PADDING-TOP: 5px
                        }
                        TD.nsrBottom {
                        WIDTH: 100%; HEIGHT: 0.6em
                        }
                        SPAN.clsGlossary {
                        COLOR: #509950; CURSOR: default; FONT-WEIGHT: bold
                        }
                        DIV.clsTooltip {
                        BORDER-BOTTOM: black 1px solid; POSITION: absolute; BORDER-LEFT: black 1px solid; PADDING-BOTTOM: 2px; BACKGROUND-COLOR: #ffffaa; PADDING-LEFT: 2px; PADDING-RIGHT: 2px; DISPLAY: none; FONT-FAMILY: Arial; COLOR: black; FONT-SIZE: 8pt; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid; PADDING-TOP: 2px; TOP: 0px; LEFT: 0px
                        }
                        SPAN.feedbackcss {
                        WIDTH: 100%; MARGIN-LEFT: 15px; FONT-SIZE: 110%
                        }
                        DIV#feedbackarea TABLE {
                        BORDER-RIGHT-WIDTH: 0px; MARGIN-TOP: 0px; WIDTH: 300px; MARGIN-BOTTOM: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: 0px; BORDER-LEFT-WIDTH: 0px
                        }
                        DIV#feedbackarea TABLE TD {
                        BORDER-BOTTOM: 0px; TEXT-ALIGN: center; FONT-FAMILY: Verdana; FONT-SIZE: 100%
                        }
                        DIV#feedbackarea P {
                        MARGIN: 0px 5px 0px 6px; WIDTH: 100%; FONT-SIZE: 100%
                        }
                        DIV#feedbackarea H5 {
                        MARGIN-TOP: 0px; MARGIN-BOTTOM: 0.7em; MARGIN-LEFT: 6px; FONT-SIZE: 10pt
                        }
                        P.feedbackarea {
                        BACKGROUND-COLOR: #d4dfff; ; WIDTH: expression(document.body.clientWidth-27); FONT-SIZE: 100%
                        }
                        INPUT#submitFeedback {
                        TEXT-ALIGN: center; FONT-SIZE: 100%
                        }
                        SPAN#feedbackarea {
                        WIDTH: 100%
                        }
                        DIV#feedbackarea {
                        WIDTH: 100%
                        }
                        SPAN.filterOnHover {
                        COLOR: #e85f17
                        }
                        SPAN.filter {
                        COLOR: #0000ff
                        }
                        A IMG {
                        BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px
                        }
                    </style></head><body><div id="header"><table id="bottomTable" cellpadding="0" cellspacing="0"><tr id="headerTableRow1"><td align="left"><span id="runningHeaderText" /></td></tr><tr id="headerTableRow2"><td align="left"><span id="nsrTitle">SharePoint 2013: Import, validate, and manage app licenses</span></td></tr></table></div><div id="mainSection"><div id="mainBody"><font color="DarkGray"></font><p /><div class="summary"><p>Learn how to import and manage app licenses for apps for SharePoint, and how to retrieve, validate, and communicate licensing states. </p></div><div class="introduction"><p>This sample provides tools to help you implement the app license framework in your apps for SharePoint. Using the tools in the sample, you can import test licenses, validate app licenses, and manage license assignment within a SharePoint site.</p><p>The sample demonstrates how to do the following:</p><ul><li><p>Import test licenses.</p></li><li><p>Validate licenses, including test licenses.</p></li></ul><p>This sample also includes helper classes that you can use to implement licensing in your own apps for SharePoint projects. These helper classes assist in retrieving and validating app licenses.</p></div><a name="O15Readme_Prereq" /><h1 class="heading">Prerequisites</h1><div id="sectionSection0" class="section" name="collapseableSection" style=""><p>This sample requires the following:</p><ul><li><p>An Office 365 Developer Site</p></li><li><p>Visual Studio 2012 and Office Developer Tools for Visual Studio 2012 installed on your developer computer</p></li></ul></div><a name="O15Readme_components" /><h1 class="heading">Key components</h1><div id="sectionSection1" class="section" name="collapseableSection" style=""><p>The sample presents a user interface (UI) that lets you do the following:</p><ul><li><p><span class="label">Import Test Licenses</span></p><p>Enables site collection administrators to import test licenses. Use this tool to simulate purchases; you should then manually start your app to verify whether license checks work appropriately.</p></li><li><p><span class="label">Validate License Sample</span></p><p>An ASP.NET web form example of how to retrieve and validate a license in your own apps, in both production and test modes. The sample retrieves the top-most license, and displays a warning message at the top of the page.</p></li><li><p><span class="label">Manage Existing Licenses</span></p><p>Provides a shortcut to the SharePoint license management UI. Site collection administrators can view license details, assign seats, and delete licenses.</p></li></ul></div><a name="O15Readme_config" /><h1 class="heading">Configure the sample</h1><div id="sectionSection2" class="section" name="collapseableSection" style=""><p>To configure the basic data operations sample app, update the <b>SiteUrl</b> property of the solution with the URL of the home page of your Office 365 Developer Site.</p></div><a name="O15Readme_test" /><h1 class="heading">Run and test the sample</h1><div id="sectionSection3" class="section" name="collapseableSection" style=""><ol><li><p>Press the F5 key to build and deploy the app.</p></li><li><p>Choose <span class="ui">Trust It</span> on the consent page to grant permissions to the app.</p></li><li><p>Use the app's interface to import, validate, and manage app licenses.</p></li></ol></div><a name="O15Readme_Troubleshoot" /><h1 class="heading">Troubleshooting</h1><div id="sectionSection4" class="section" name="collapseableSection" style=""><p>The following table lists common configuration and environment errors that prevent the sample from running or deploying properly and how you can solve them.</p><div class="caption"></div><div class="tableSection"><table width="50%" cellspacing="2" cellpadding="5" frame="lhs"><tr><th><p>Problem</p></th><th><p>Solution</p></th></tr><tr><td><p>Visual Studio does not open the browser after you press the F5 key.</p></td><td><p>Set the app for SharePoint project as the startup project.</p></td></tr><tr><td><p>HTTP error 405 <b>Method not allowed</b>.</p></td><td><p>Locate the <span sdata="langKeyword" value="applicationhost.config"><span class="keyword">applicationhost.config</span></span> file in %userprofile%\Documents\IISExpress\config.</p><p>Locate the handler entry for <b>StaticFile</b>, and add the verbs <span sdata="langKeyword" value="GET"><span class="keyword">GET</span></span>, <span sdata="langKeyword" value="HEAD"><span class="keyword">HEAD</span></span>, <span sdata="langKeyword" value="POST"><span class="keyword">POST</span></span>, <span sdata="langKeyword" value="DEBUG"><span class="keyword">DEBUG</span></span>, and <span sdata="langKeyword" value="TRACE"><span class="keyword">TRACE</span></span>.</p></td></tr><tr><td><p>An attempt to delete a folder does not work.</p></td><td><p>This likely happens because the folder is used internally and cannot be deleted.</p></td></tr></table></div></div><a name="O15Readme_Changelog" /><h1 class="heading">Change log</h1><div id="sectionSection5" class="section" name="collapseableSection" style=""><div class="caption"></div><div class="tableSection"><table width="50%" cellspacing="2" cellpadding="5" frame="lhs"><tr><th><p>Version</p></th><th><p>Date</p></th></tr><tr><td><p>First version</p></td><td><p>June 2013</p></td></tr></table></div></div><a name="O15Readme_RelatedContent" /><h1 class="heading">Related content</h1><div id="sectionSection6" class="section" name="collapseableSection" style=""><ul><li><p><a href="http://msdn.microsoft.com/en-us/library/office/apps/verificationsvc.aspx" target="_blank">VerificationSvc namespace</a></p></li><li><p><a href="http://msdn.microsoft.com/en-us/library/office/apps/microsoft.sharepoint.client.utilities.utility.importapplicense.aspx" target="_blank">Utility.ImportAppLicense method</a></p></li><li><p><a href="http://msdn.microsoft.com/en-us/library/office/apps/microsoft.sharepoint.client.utilities.utility.getapplicenseinformation.aspx" target="_blank">Utility.GetAppLicenseInformation method</a></p></li><li><p><a href="http://msdn.microsoft.com/en-us/library/office/apps/jj163257(v=office.15)" target="_blank">Licensing apps for Office and SharePoint</a></p></li><li><p><a href="http://msdn.microsoft.com/en-us/library/office/apps/jj164035.aspx" target="_blank">How to: Add license checks to your app for SharePoint</a></p></li><li><p><a href="http://msdn.microsoft.com/en-us/library/office/apps/jj163264.aspx" target="_blank">Best practices and design patterns for app license checking</a></p></li></ul></div></div></div></body></html>