2009-10-23 7 views
0

I une application console qui crée des sous-sites sous une collection de sites La collection de sites accepte uniquement les utilisateurs basés sur des formulaires.Authentification Forms Sharepoint Exécuter avec un compte différent

Maintenant, lorsque je lance l'application console, c'est avec les informations d'identification Windows.

J'ai besoin d'un moyen d'exécuter le code dans l'application console qui crée un sous-site à exécuter sous l'utilisateur formulaires qui est administrateur de cette collection de sites.

Faites-moi savoir vos suggestions.

Merci

Répondre

0

Vous devez créer un nouveau service Web dans l'application Web Administration centrale ([12 ruche] \ AMDISAPI de) et ajouter une fonction qui crée des sous-sites.

Voici un exemple - la fonction hstCreateSubSite du projet SharePoint for Hosters:

/// <summary> 
/// Method to create a Sub site for a site collection 
/// </summary> 
/// <param name="strSiteURL">url of the sitecollection i.e. "http://www.sitea.com"</param> 
/// <param name="subsitePath">the path to the subsite i.e. inventory</param> 
/// <param name="strTitle">sub site title</param> 
/// <param name="strDesc">sub site description</param> 
/// <param name="strTemplate">a valid templateID</param> 
/// <param name="nLCID">the LCID for the language i.e. 1033 for english</param> 
[WebMethod] 
public void hstCreateSubSite(string strSiteURL, string subSitePath, string strTitle, string strDesc, string strTemplate, uint nLCID) 
{ 

    SPSite oSite = new SPSite(strSiteURL); 
    SPWeb oSubSiteWeb = oSite.OpenWeb(); 

    SPWeb oWeb = null; 

    if (String.IsNullOrEmpty(strDesc)) strDesc = null; 
    if (String.IsNullOrEmpty(strTitle)) strTitle = null; 

    try 
    { 
     // elevate permissions to allow user to create a new site. 
     SPSecurity.RunWithElevatedPrivileges(delegate() 
     { 
      // the subsite will inherit permissions and will not convert the site if it exists 
      oWeb = oSubSiteWeb.Webs.Add(subSitePath, strTitle, strDesc, nLCID, strTemplate, false, false); 

      SPNavigationNodeCollection nodes = oSubSiteWeb.Navigation.TopNavigationBar; 
      SPNavigationNode navNode = new SPNavigationNode(strTitle, subSitePath); 
      nodes.AddAsLast(navNode); 

      oWeb.Navigation.UseShared = true; 

      // create entry in property bag to store template and url in the subsite. 
      oWeb.AllowUnsafeUpdates = true; 
      // add the Templateid to the property bag. This needs to be done becuase 
      // sites that are created from site templates (.stp) do not retain the templateid. 
      oWeb.Properties.Add("STP_ID", strTemplate); 
      oWeb.Properties.Update(); 
      oWeb.AllowUnsafeUpdates = false; 

     }); 
    } 
    catch (Exception ex) 
    { 
     throw ex; 
    } 
    finally 
    { 
     //dispose objects 
     if (oWeb != null) 
      oWeb.Dispose(); 

     if (oSite != null) 
      oSite.Dispose(); 
    } 
} 
Questions connexes