IMasterPageService - интерфейс сервиса для работы с Master-страницами. Сервис используется для настройки Master-страниц в технологических страницах, хранящихся в сборках, в связи с тем, что на этапе компиляции не известна структура и конфигурация конкретного прикладного проекта. Сервис позволяет указывать как используемую Master-страницу, так и контенйер, в котором будет отображаться содержимое страницы.

Создание пользователя в Web через группу

Для этого нужно:

1.Добавить класс в проект. Свойство MasterPageFile.

public class StaticMasterPageService : IMasterPageService
{
    /// <summary>
    /// Серверный путь до текущей Master-страницы.
    /// </summary>
    private readonly string _masterPageFile;

    /// <summary>
    /// Идентификатор контейнера для содержимого страницы.
    /// </summary>
    private readonly string _placeHolderId;

    /// <summary>
    /// Конструктор класса.
    /// Явно устанавливает параметры для работы с Master-страницей.
    /// </summary>
    /// <param name="masterPageFile">Серверный путь до текущей Master-страницы.</param>
    /// <param name="placeHolderId">Идентификатор контейнера для содержимого страницы.</param>
    public StaticMasterPageService(string masterPageFile, string placeHolderId)
    {
        _masterPageFile = masterPageFile;
        _placeHolderId = placeHolderId;
    }

    /// <summary>
    /// Серверный путь до текущего Master-файла в WebAppTemplate.
    /// </summary>
    public string MasterPageFile
    {
        get
        {
            switch (ThemeService.Current.Theme)
            {
                case "Boost":
                    return "~/Boost.Master";
                case "Smart":
                    return "~/Site1.Master";
            }

            return _masterPageFile; 
        }
    }

    /// <summary>
    /// Метод для получения контрола-контейнера для содержимого страницы.
    /// Возвращает основной ContentPlaceholder из Master-страницы WebAppTemplate.
    /// </summary>
    /// <param name="page">Страница, у которой нужно определить контейнер для основного контента.</param>
    /// <returns>Контрол-контейнер, в который будут помещены все контролы страницы.</returns>
    public Control GetContentPlaceholder(Page page)
    {
        return page.FindControlsByID(_placeHolderId).FirstOrDefault();
    }

}

2.Изменить Web.config. Параметр mapTo.

<!-- Конфигурация сервиса Master-страниц. -->
<register type="NewPlatform.Flexberry.Web.MasterPage.IMasterPageService, ICSSoft.STORMNET.Web.AjaxControls" 
	mapTo="IIS.Бюджет.StaticMasterPageService, Бюджет(ASP.NET Application)">
	<lifetime type="singleton" />
	<constructor>
		<param name="masterPageFile" type="System.String" value="~/Site1.Master" />
		<param name="placeHolderId" type="System.String" value="ContentPlaceholder1" />
	</constructor>
</register>