SharePoint 2007 - /_layouts and how to create pages that run in site context

Ages ago, in the time that SharePoint 2007 was still beta, I dived into how to create "in site context" pages that should be hosted in the /layouts directory of SharePoint. My adventures from back then can be found in this blog post. I don't want to take the default Microsoft approach where all server-side code is included in the aspx pages themselves. Developing this way is way more difficult that using code-behind files. I found a solution by creating a Visual Studio 2005 web site in the /layouts virtual directory of my SharePoint web site, which points to the physical folder C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS. In this approach all code behind files are part of the solution, and are compiled and cached on page request. Although this approach works, I don't really like it. I prefer the Visual Studio 2003 approach where all code-behind is compiled into a single assembly that can be deployed. Another problem is the location of referenced assemblies. I had my referenced assemblies in the GAC, but I prefer to deploy to a bin folder so no IISRESET recycling of the SharePoint application pool is needed on recompilation.

What I really want to achieve is the following:

Create a web application project that can be deployed to the SharePoint /layouts virtual directory, so my code is executed in the context of a site.

The solution happens to be really easy:

Create a web application project, either directly in the /layouts folder or somewhere else and copy over all files needed to run your application.

The *.dll and *.pdb files produced as build output must be places in the bin folder of your SharePoint web site. In my test situation this is the folder C:\Inetpub\wwwroot\wss\VirtualDirectories\3a938f6a-15f2-49ae-be78-328ad78974f5\bin. You can find this folder in your Internet Information Server Manager as follows:

  • Right-click of the SharePoint web site
  • Select properties
  • Go to the Home Directory tab

The value in Local Path specifies the path to the virtual directory, and in this virtual directory you find a folder bin.

If you create your web application project within the /layouts virtual directory, you can set the build output path directly to this bin folder.

Note that you can't use the Publish Web feature of the web application project, because you can't specify a separate path to deploy your assemblies to:

For my test I created the following project:

I added some really simple code to the Default.aspx and Default.aspx.cs files to prove that it works:

Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="SergeLayoutsTest.Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Site title test</title> </head> <body> <form id="form1" runat="server"> <div> Title of this site: <asp:Label ID="LabelTitle" runat="server" Text="Label"></asp:Label> </div> </form> </body> </html>

 Default.aspx.cs:

using System;
using Microsoft.SharePoint;

namespace SergeLayoutsTest { public partial class Default : System.Web.UI.Page { protected void PageLoad(object sender, EventArgs e) { SPWeb web = SPContext.Current.Web; LabelTitle.Text = web.Title; } } }

There is one more thing to do, exclude the selection of the authentication mode from your web.config file:

web.config:

<?xml version="1.0"?>

<configuration> <appSettings/> <connectionStrings/> <system.web> <compilation debug="true" /> <!-- <authentication mode="Windows" /> --> </system.web> </configuration>

 We can now run the page in the context of two different sites to see that it works:

67 Comments

  • Did you try using that same page from another virtual directory running with a different application pool?
    My tests show that if you do, it fails.

  • Hi Ishai,

    Did you try to copy your code-behind dll to the bin directory of the SharePoint site in the other web application. I assume this works.

    Serge

    PS: You have a great weblog!

  • How do you reference the microsoft.Sharepoint.dll? I get an error when i do it

  • i am getting the following error
    Request for the permission of type 'Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' failed.

    Any Ideas??

  • The problem i had was with the WSS_minimal instead of WSS_medium in the web.config file it is working now but i am getting

    Content controls have to be top-level controls in a content page or a nested master page that references a master page.

    when i try to add a master page in the OnPreInit(EventArgs e) method

  • I've used this method to get current user information. But SPContext.Current.Web.CurrentUser.LoginName returns "SHAREPOINT\system". How to get logged in user?

  • i am getting error ~/_layouts/application.master is not found
    please reply

  • How to create personal site using code
    i need to create a personal site for all the users while iam creating userprofile's
    wht is the object model i need to specify,
    does personal site has tempalate..

  • Hi,
    We have developed web application that is copied to the _Layouts folder in SP and is IIS configured with Windows authentication. But I'm faced with big problem, Authentication. The application has different modules. I'm creating an ASP menu control on the home page of a site and where each menu item points to a module folder path on the SP server. The module should be restricted only to few users. Planning to create a group in SP. But I dont know how to authenticate the user in Page_Load event.
    Any help would be greatly appreciated

  • Thanks for such a nice post.

    I have a problem similar to this.

    I have 2 connected web parts (2 .cs files) as project folder (one is provider and second is consumer) in MOSS 2007 portal. The provider web part passes selected data row to consumer web part.

    The consumer web part need to fetch some detail value from received value and based on that it required to display dundas chart.

    So I have created one web application with one .aspx page. This page is receiving querystring data and based on that it creates chart.
    From my consumer web part , I am calling this page as HTML IMG tag (<img src="path to .aspx page").

    The problem is this, as long I keep the web application open in studio, the chart get displayed properly. But when I closes the web application , the graph doesn't appear.

    So can u tell me how I can put that .aspx page such that its scope will remain with my sharepoint application.

  • Hi,

    I'm trying your solutions, but when i try connect to masterpages not display, end i config it's run with mymasterpage. I have a problem , a can't add webpart to page. I think's you have one solution for my problem, please help me!
    Thanks you

  • HI,

    All are working except the pages which usese session variables.

    I have tried all these, add session module in httpModule.

    enable session state in page directive and also in web.config in my application.

    Are you know how can access session state from these pages.

  • I am getting this error

    This error (HTTP 403 Forbidden) means that Internet Explorer was able to connect to the website

    Can any one help me.

    Thanks

  • Very helpful post! Thanks a lot!

  • Hi Guys I have created a web app that has 2 user controls and uses ajax and things and when i copied the project to _layouts folder but when i try to open the page i get a http 403 exception telling you are not authorised to view this page.. Can anybody guide me to install this complex project to sharepoint/_layouts folder

  • also i want to use the masterpage of the context website. Plz help thanks guys

  • Hi,

    Is there any way I can limit some users from accessing custom _layouts page.
    I want only users who has access to site settings menu to have access to this page.

    Regards,
    Sandeep

  • SharePoint 2007 _2D00_ _2F005F00_layouts and how to create pages that run in site context.. Awful :)

  • SharePoint 2007 _2D00_ _2F005F00_layouts and how to create pages that run in site context.. Awesome :)

  • SharePoint 2007 _2D00_ _2F005F00_layouts and how to create pages that run in site context.. Reposted it :)

  • ,buy generic metronidazole - is metronidazole safe

  • Some words - no proof.

  • [b]DDos атака/заказать DDos[/b]
    - профессиональный сервис;
    - гарантируем Вам анонимность;
    - лучшее соотношение цены и качества на рынке DDoS услуг;
    - индивидуальный подход;
    - гибкая система скидок для постоянных клиентов и оптовых заказчиков;
    - оснащены профессиональными приватными программами;
    - беремся за проекты с анти-DDoS, за «тяжелые проекты»;
    - можем работать на постоянной основе несколько url одновременно(в любой момент url можно поменять);
    - предлагаем Вам качество проверено гарантом;
    - делаем тест;

    Досконально изучаем все тонкости Вашего заказа!

    Ценовая политика:
    от 1$ час
    (индивидуальный подход к оптовым клиентам)

    [b]Связь/Support:
    mail4900@rambler.ru[/b]


















    +как организовать ddos, стоимость ddos атаки, защита +от ddos iptables, css защита +от ddos атак, купить ddos, trojan win32 inject ddos ci, анти ddos, anti ddos firewall, ddos samp 0.3 c серверов, +как организовать ddos атаку, +как устроить ddos атаку, ddos prevention, ddos бот, хостинг +с защитой +от ddos, троян ddos, ddos википедия, софт +для ddos, скачать защиту +от ddos атак, защита +от ddos бесплатно, ddos

  • Z góry dziękuję i życzę powodzenia, weblogs.asp.net! :)

  • Are you sure about this??


  • Новости и мероприятия из мира предпринимателей читайте здесь hroniki.biz

  • детализация звонков бесплатно sim-service.su распечатка билайн sim-service.su распечатка мтс sim-service.su sim-service.su sim-service@inbox.ru sim-service.su sim-service@inbox.ru sim-service.su sim-service.su sim-service.su sim-service.su sim-service.su www.sim-service.su sim-service.su sim-service.su sim-service.su sim-service.su
    sim-service.su sim-service.su sim-service.su sim-service.su sim-service.su sim service inbox ru sim-service.su sim-service.su sim-service.su sim service inbox ru sim-service.su sim-service.su sim-service.su sim service inbox ru sim-service.su sim-service.su sim-service.su sim-service@inbox.ru sim-service.su sim-service.su sim-service.su sim-service@inbox.ru sim-service.su sim-service.su распечатка звонков билайн sim-service.su детализация на sim-service.su детализация билайн sim-service.su

  • [b]Продам дебетовые карты[/b]

    Виза классик, виза голд всех востребованных банков, всегда в наличии большой выбор.
    Стоимость карт:
    виза классик 5 т.р.
    виза голд 7 т.р.
    Комплектность. Все комплекты карт содержат: данные о пользователе в виде копии паспорта, пластиковую карту, пинкод, привязанную симкарту, договор банковского обслуживания, данные для работы с интернет банком, кодовое слово, необходимые выписки, реквизиты и чеки. Все комплекты готовы к работе.
    Оплата. [b]Работаем без предоплаты.[/b] Вы получаете товар, проверяете и оплачиваете заказ

    [b]icq 612576295
    мобильный 8952 285 98 19 [/b]



















    (0627) продажа дебетовых карт, дебетовые карты, купить, дебетовую карту, пластик, купить пластик, обнал, обналичка, карты для обналичивания денег, дебетовая карта не дорого,купли-продажа дебетовых карт, услуги по продаже дебетовых карт, visa, master card, дебетовые карты на заказ , выгодные условия по покупке дебетовых карт, услуги по продаже готовых дебетовых карт (5803)

  • Doceniam każdy z informacji przeczytać na weblogs.asp.net. I z pewnością będzie rozprzestrzeniać się zdanie o witryny z ludźmi. Cheers.


  • Even if we live in one of the most advanced countries in the world, inter-state shipping can be a pain. Swift-post.com has managed to fix most of those pains for me while staying very affordable. Definitely an A+ - Tom

  • Ale chcę powiedzieć, że ta weblogs.asp.net jest bardzo pomocne, Dzięki za poświęcenie czasu do napisania tego.

  • Настоящая дружба не знает зависти. Ф. Ларошфуко.
    С разбором выбирай друзей, когда корысть себя личиной дружбы кроет - она тебе лишь яму роет. И. Крылов.


  • Магические голые канадские сфинксы и коротколапые голые кошки-бамбино
    ждут своих любящих родителей. Котята шоу и пет качества разнообразных окрасов
    и возрастов предлагает питомник любителям этих прекрасных пород. Спешите
    купить это ласковое, преданное, ушастое чудо! Ждем, Вас.
    цены от 5 000 рублей за котёнка.
    Тел. 79015170618, 8(495)4538730 8 901 517 06 18 Наталия.





















    Купить сфинкса, сфинксы, голые сфинксы, голые канадские сфинксы, канадские сфинксы, питомник канадских сфинксов,питомник сфинксов, питомник голых сфинксов, купить сфинксов, купить бамбино, питомник бамбино, купить кошку сфинкса,купить котёнка сфинкса, купить котёнка, купить котенка, купить голого сфинкса, купить голого канадского сфинкса, котёнок сфинкса, котенок сфинкса,покупка сфинска, покупка сфинкса котёнка, покупка канадского сфинкса, сфинкс котёнок, котёнок сфинкс, котёнок канадский сфинкс, бамбино котёнок,
    купить бамбино котёнок, котенок бамбино, продажа сфинксов, продажа канадских сффинксов, продажа голых сфинксов, продажа голых канадских сфинксов,консультация покупки сфинкса, информация сфинкс, сфинкс описание, сфинкс качесто, котёнок, котенок, голый котенок, котёнок для аллергика, котёнок для аллергиков.

  • Obscene amounts of money are squandered on skanky single mothers who get pregnant merely for the monetary benefits.
    Nano and thinks “cheap,” but it is undeniably cheaper than the classic iPod or the iPod Touch.

    I would like to see it or see a video! Japanese game show that you showed where the people had to fit through the shapes?

  • 50 % discounts on all airtickets flights and hotels as well as all football matches
    email us at makitelove@yahoo.com

    no advance payment needed

  • Массовая рассылка обьявлений на 8 тысяч 900 досок а так же на 42 тысячи закрытых форумов и о ваших предложениях сразу же узнают миллионы покупателей.- Всего 244 рублей за рассылку. - Качественно.С гарантией..- т. 89266853242 ICQ 568113539 почта: rutop10@mail (точка) ru .

  • Массовая рассылка обьявлений на 8 тысяч 100 досок а так же на 48 тысяч форумов и о ваших предложениях уже через час узнают десятки тысяч клиентов.- Всего 238 рублей за рассылку. - Качественно.С гарантией..- т. 89266853242 ICQ 568113539 почта: rutop10@mail (точка) ru .

  • Реальная рассылка вашей рекламы на 8 тысяч 300 досок обьявлений а так же на 43 тысячи 500 закрытых форумов и о ваших товарах уже через час узнают десятки миллионов клиентов.- Всего 211 рублей за рассылку. - Качественно.С гарантией..- т. 89266853242 ICQ 568113539 почта: rutop10@mail (точка) ru .

  • Оборудование для утилизации опилок и производства биотоплива. Стоимость от 98 тыс. руб.! В наличии! Пеллетайзер GRAN – новое слово в технологии производства пеллет (топливных гранул)! т.(495) 646-00-29, www.gran-pellet.ru, gran-pelet@rambler.ru

  • Приглашаем к сотрудничеству мастеров по ремонту холодильников.Большой объем работы.Постоянные заказы на ремонт холодильников во всех районах Москвы.Оплата 50%. тел.8-967-1516400

  • WEB дизайн, изготовления сайтов, недорого, на языках русский, английский, армянский.
    Тел.+374 91 105781
    Skype: armen2005h

  • Приглашаем к сотрудничеству мастеров по ремонту холодильников.Большой объем работы.Постоянные заказы на ремонт холодильников во всех районах Москвы.Оплата 50%. тел.8-967-1516400

  • Массовая рассылка сообщений на 8 тысяч 880 досок а так же на 43 тысячи 500 форумов и о ваших товарах и услугах мгновенно узнают десятки тысяч покупателей.- Всего 238 рублей за рассылку. - Качественно.С гарантией..- т. 89266853242 ICQ 568113539 почта: rutop10@mail (точка) ru .

  • Приглашаем к сотрудничеству мастеров по ремонту холодильников.Большой объем работы.Постоянные заказы на ремонт холодильников во всех районах Москвы.Оплата 50%. тел.8-967-1516400

  • Реальная рассылка вашей рекламы на 8 тысяч 255 досок обьявлений а так же на 42 тысячи форумов и о ваших услугах сразу же узнают тысячи покупателей.- Всего 245 рублей за рассылку. - Качественно.С гарантией..- т. 89266853242 ICQ 568113539 почта: rutop10@mail (точка) ru .

  • Реальная рассылка на 8 тысяч 330 досок а так же на 45 тысяч 500 закрытых форумов и о ваших предложениях сразу же узнают сотни тысяч покупателей.- Всего 238 рублей за рассылку. - Качественно.С гарантией..- т. 89266853242 ICQ 568113539 почта: rutop10@mail (точка) ru .

  • Срочная рассылка на 8 тысяч досок обьявлений а так же на 47 тысяч закрытых форумов и о ваших услугах уже через час узнают тысячи клиентов.- Всего 236 рублей за рассылку. - Качественно.С гарантией..- т. 89266853242 ICQ 568113539 почта: rutop10@mail (точка) ru .

  • Быстрая рассылка обьявлений на 8 тысяч 875 досок а так же на 48 тысяч закрытых форумов и о ваших сайтах и товарах моментально узнают миллионы потенциальных клиентов.- Всего 224 рублей за рассылку. - Качественно.С гарантией..- т. 89266853242 ICQ 568113539 почта: rutop10@mail (точка) ru .

  • Рассылка рекламы на 8 тысяч 360 досок а так же на 46 тысяч 500 форумов и о ваших сайтах и товарах в течении часа узнают сотни тысяч клиентов.- Всего 215 рублей за рассылку. - Качественно.С гарантией..- т. 89266853242 ICQ 568113539 почта: rutop10@mail (точка) ru .

  • Оборудование для утилизации опилок и производства биотоплива. Стоимость от 98 тыс. руб.! В наличии! Пеллетайзер GRAN – новое слово в технологии производства пеллет (топливных гранул)! т.(495) 646-00-29, www.gran-pellet.ru, gran-pelet@rambler.ru

  • Массовая рассылка обьявлений на 8 тысяч 360 досок обьявлений а так же на 41 тысяча закрытых форумов и о ваших товарах и услугах уже через час узнают десятки тысяч покупателей.- Всего 233 рублей за рассылку. - Качественно.С гарантией..- т. 89266853242 ICQ 568113539 почта: rutop10@mail(точка)ru

  • wmeavf Не спамовая рассылка ваших обьявлений на 8 тысяч 245 досок а так же на 45 тысяч закрытых форумов и о ваших товарах и услугах моментально узнают тысячи клиентов.- Всего 211 рублей за рассылку. - Качественно.С гарантией..- т. 89266853242 ICQ 568113539 почта: rutop10@mail(точка)ru

  • Ищу рабочих для работы на лесоперерабатывающем предприятиии можно без опыта работы, без вредных привычек, жилье предоставляем. Работа в Вологодской области по трудовому договору, зарплата достойная на данный момент нужно 10 человек. тел. 8-909-595-0169 или на почту.

  • Оборудование для утилизации опилок и производства биотоплива. Стоимость от 98 тыс. руб.! В наличии! Пеллетайзер GRAN – новое слово в технологии производства пеллет (топливных гранул)! т.(495) 646-00-29, www.gran-pellet.ru, gran-pelet@rambler.ru

  • dbslnn Рассылка на 8 тысяч 850 досок обьявлений а так же на 50 тысяч закрытых форумов и о ваших предложениях мгновенно узнают десятки миллионов покупателей.- Всего 227 рублей за рассылку. - Качественно.С гарантией..- т. 89266853242 ICQ 568113539 почта: rutop10@mail(точка)ru

  • uyixxf Реальная рассылка вашей рекламы на 8 тысяч 790 досок а так же на 40 тысяч форумов и о ваших предложениях уже через час узнают десятки тысяч клиентов.- Всего 237 рублей за рассылку. - Качественно.С гарантией..- т. 89266853242 ICQ 568113539 почта: rutop10@mail(точка)ru

  • banmxu Быстрая рассылка обьявлений на 8 тысяч 330 досок а так же на 45 тысяч 500 форумов и о ваших предложениях моментально узнают десятки миллионов потенциальных клиентов.- Всего 224 рублей за рассылку. - Качественно.С гарантией..- т. 89266853242 ICQ 568113539 почта: rutop10@mail(точка)ru

  • Оборудование для утилизации опилок и производства биотоплива. Стоимость от 98 тыс. руб.! В наличии! Пеллетайзер GRAN – новое слово в технологии производства пеллет (топливных гранул)! т.(495) 646-00-29, www.gran-pellet.ru, gran-pelet@rambler.ru

  • obviously like your web-site but you have to check the spelling on several of your posts. Several of them are rife with spelling issues and I to find it very troublesome to inform the reality nevertheless Iˇll definitely come again again.

  • - Бросил жену с ребенком!
    - Я не ребенок, я - офицер!
    - Бросил жену с офицером!

  • Так вот из-за того, что вы говорите что не думаете и думаете, что не думаете и происходит весь тот горький катаклизм, который я здесь наблюдаю…
    - Дикари!

  • Hello, i think that i saw you visited my site so i came to “return the favor”.
    I am attempting to find things to improve my
    website!I suppose its ok to use a few of your ideas!
    !

  • Great information on this amazing site!
    If you prefer taking part in games you should take a look at my own link to the newest Minecraft news blog!

  • To w rzeczywistości pierwszorzędny oraz wartościowy
    kawałek informacji. Jestem rada , że trafiłam na Twój materiał.
    Dzięki za udostępnienie.

  • An impressive share! I've just forwarded this onto a colleague who has been conducting a little homework on this. And he actually ordered me breakfast due to the fact that I discovered it for him... lol. So let me reword this.... Thanks for the meal!! But yeah, thanx for spending time to talk about this issue here on your blog.

  • Wow! Finally I got a webpage from where I be able to in fact
    get useful data concerning my study and knowledge.

  • Хелоуки. У меня есть дилема
    xoxonexoxo.ru Сильно выпадают волосы, что делать? Уже и подстригали кончики, ничего не помогает

Comments have been disabled for this content.