Quantcast
Channel: SharePoint 2013 - Development and Programming forum
Viewing all articles
Browse latest Browse all 25064

Create Site Collection programmatically - Self Service Site Creation

$
0
0

Hello,

I have enabled SSSC on my web application and I am attempting to create a new site collection in the ItemAdding event of a list but it fails every time with an exception: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)). Creating Site Collections using the out of the box SSSC page works as expected.

The code:

/// <summary>
        /// An item is being added.
        /// </summary>
        public override void ItemAdding(SPItemEventProperties properties)
        {
            try
            {
                var siteUrl = properties.Site.Url;
                var siteId = properties.SiteId;

                using (var site = new SPSite(siteId))
                {
                    var projectSite = site.SelfServiceCreateSite(
                        siteUrl + "/projects/" + properties.ListItemId,
                        properties.AfterProperties["Title"].ToString(),
                        string.Empty,
                        1033,"STS#1",
                        properties.UserLoginName,
                        properties.UserDisplayName,
                        properties.Web.CurrentUser.Email,
                        properties.UserLoginName,
                        properties.UserDisplayName,
                        properties.Web.CurrentUser.Email);

                    properties.AfterProperties["PplProjectName"] = projectSite.Url + ","+ properties.AfterProperties["Title"];
                    base.ItemAdding(properties);
                }
            }
            catch (Exception ex)
            {
                properties.Status = SPEventReceiverStatus.CancelWithError;
                properties.ErrorMessage = ex.Message;
            }



<Lambros />


Viewing all articles
Browse latest Browse all 25064

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>