Поделиться через


Практическое руководство. Включение аутентификации в клиентском приложении Silverlight

В LightSwitch приложение можно сделать более безопасным, запретив пользователям несанкционированное чтение, изменение или удаление данных. При реализации аутентификации и авторизации пользователи должны подтвердить свои личные данные, чтобы получить доступ к приложению.

Примечание

Клиенты HTML имеют другой процесс задания разрешений, описанный в разделе Практическое руководство. Включение аутентификации в клиентском HTML-приложении.Приложения LightSwitch, которые поддерживаются SharePoint, для управления доступом используют аутентификацию SharePoint.

В случае нескольких пользователей управление доступом можно упростить, создав роли пользователей с разными уровнями доступа к определенным экранам и данным, а затем назначив каждому пользователю соответствующую роль.

Например, в приложении заработной платы сотрудники могут просматривать, но не изменять сведения о своей заработной плате. Однако начальнику отдела заработной платы могут быть предоставлены разрешения на просмотр и изменение сведений о сотруднике. Сотрудникам будет назначена роль "Сотрудник", а руководителю — "Руководитель".

Администрирование прав можно упростить, добавляя пользователей в группы безопасности в Active Directory и присваивая права этим группам. Так как членство и права наследуются, можно запрещать или предоставлять права не только группе, но и всем ее подгруппам, указывая лишь одно изменение. Например, можно добавить Боба в группу Продажи в Active Directory. Если Продажи являются подгруппой группы Маркетинг, все разрешения, предоставляемые группе Маркетинг, также будут предоставлены Бобу.

Аутентификация

Первым шагом обеспечения безопасности приложения является включение аутентификации. Можно использовать аутентификацию с помощью форм или аутентификацию Windows. Управление аутентификацией с помощью форм осуществляется самим приложением; при этом для доступа к приложению пользователь должен указать имя пользователя и пароль. При использовании аутентификации Windows для аутентификации пользователя приложения используются те же учетные данные, что и для входа на компьютер, где оно выполняется: то есть дополнительные имя пользователя или пароль не требуются. В обоих случаях администратор приложения ведет список авторизованных пользователей, и при аутентификации с помощью форм администратор также хранит зашифрованные пароли.

Включение аутентификации

  1. В области Обозреватель решений откройте контекстное меню для узла Свойства и выберите Открыть.

  2. В области Конструктор приложений перейдите на вкладку Управление доступом.

  3. В списке Выберите тип аутентификации: выберите Использовать аутентификацию Windows или Использовать аутентификацию с помощью форм.

    При выборе Использовать аутентификацию Windows щелкните переключатель Разрешить только пользователям, перечисленным на экране "Пользователи" приложения или Разрешить всем пользователям, прошедшим аутентификацию Windows.

    При этом пользователи не должны предоставлять свои учетные данные для доступа к приложению.

Отключение аутентификации

  1. В области Обозреватель решений откройте контекстное меню для узла Свойства и выберите Открыть.

  2. В области Конструктор приложений перейдите на вкладку Управление доступом.

  3. В списке Выберите тип аутентификации: выберите Не включать аутентификацию.

    Пользователи не должны предоставлять свои учетные данные для доступа к приложению, и любой пользователь сможет получить доступ к любой части приложения.

Разрешения

Следующим шагом обеспечения безопасности приложения является создание разрешений. Можно определить разрешения для экранов, команд, сущностей данных и запросов. Во-первых, определите объект разрешений в области Конструктор приложений. После этого можно ссылаться на объект в коде в одном из методов Can, например CanRun<ScreenName> или <QueryName>_CanExecute. Код в этих методах обычно проверяет, имеется ли у текущего пользователя или роли разрешение, а затем, в случае наличия разрешения, отображает форму или выполняет запрос.

При тестировании кода запустите приложение от имени пользователя с разрешением и от имени пользователя без разрешения. Установив разрешения отладки, можно олицетворять пользователя при тестировании или отладке приложения.

Создание разрешения

  1. В области Обозреватель решений откройте контекстное меню для узла Свойства и выберите Открыть.

  2. В области Конструктор приложений перейдите на вкладку Управление доступом.

  3. В сетке Определите или выберите разрешения, используемые для отладки в столбце Имя выберите <Добавить новое разрешение>, а затем введите программное имя разрешения.

    Имя должно начинаться с буквы и содержать только буквы, цифры и знаки подчеркивания.

  4. В столбце Отображаемое имя введите имя разрешения в том виде, как оно будет показано на экране, который администратор приложения будет использовать для назначения ролей.

  5. В столбце Описание введите описание разрешения.

Создание кода для задания разрешений для экрана

  1. В области Обозреватель решений откройте контекстное меню для узла экрана и выберите Открыть.

    Экран откроется в области Конструктор экрана.

  2. В списке Запись кода выберите CanRunScreenName, где ScreenName — имя выбранного экрана.

  3. В редакторе кода в методе CanRunScreenName введите следующий код:

    If Application.User.HasPermission(Can_View_Products) Then
        result =  True
    Else
        result = False
    End If
    
    if (Application.User.HasPermission(Permissions.Can_View_Products)) 
    {
        result = true;
    } 
    else 
    {
        result = false;
    }
    

    Этот код будет оцениваться при каждом запуске приложения.

    Примечание

    Обратите внимание, что код примера проверяет разрешение с именем Can_View_Products.Замените имя разрешения, которое вы определили в своем приложении.

Создание кода для задания разрешений для команды

  1. В области Обозреватель решений откройте контекстное меню для узла экрана и выберите Открыть.

    Экран откроется в области Конструктор экрана.

  2. В области Дерево содержимого экрана разверните узел команд и выберите команду, для которой требуется создать код.

  3. Откройте контекстное меню для команды и выберите ButtonName**_CanExecute**, где ButtonName — имя выбранной команды.

  4. В области Редактор кода введите требуемый код в метод ButtonName**_CanExecute**.

    Примечание

    Пример кода см. ранее в подразделе "Создание кода для задания разрешений для экрана".

Создание кода для задания разрешений для сущности

  1. В области Обозреватель решений откройте контекстное меню для узла сущностей и выберите Открыть.

    Сущность откроется в области Конструктор сущностей.

  2. В конструкторе сущностей на панели Перспектива выберите Сервер.

  3. В списке Запись кода выберите метод EntityName**_Can**Operation, где EntityName — имя сущности, а Operation — имя операции, для которой необходимо написать код.

    Примечание

    Доступные методы зависят от контекста.Примеры: CanDelete и CanUpdate.

  4. В области Редактор кода введите требуемый код в метод EntityName**_Can**Operation.

    Примечание

    Пример кода см. ранее в подразделе "Создание кода для задания разрешений для экрана".

Создание кода для задания разрешений для запроса

  1. В области Обозреватель решений откройте контекстное меню для узла запроса и выберите Открыть.

    Запрос откроется в области Конструктор запросов.

  2. В списке Запись кода выберите один из методов QueryName**_CanExecute**, где QueryName — имя выбранного запроса.

  3. В области Редактор кода введите требуемый код в метод QueryName**_CanExecute**.

    Примечание

    Пример кода см. ранее в подразделе "Создание кода для задания разрешений для экрана".

Включение разрешений для отладки

  1. В области Обозреватель решений откройте контекстное меню для узла Свойства и выберите Открыть.

  2. В области Конструктор приложений перейдите на вкладку Управление доступом.

  3. В сетке Определите или выберите разрешения, используемые для отладки выберите разрешение, которое требуется включить для использования при отладке, а затем установите флажок Предоставлено для отладки.

Публикация и администрирование

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

Определение администратора

  • Выполните шаги, описанные в разделе Администрирование приложения LightSwitch.

    Важно!

    Если приложение поддерживает аутентификацию, а администратор по умолчанию не определен, вы не сможете получить доступ к опубликованному приложению.

См. также

Задачи

Администрирование приложения LightSwitch

Практическое руководство. Включение аутентификации в клиентском HTML-приложении

Основные понятия

Вопросы безопасности LightSwitch

Другие ресурсы

Экраны клиента Silverlight для приложений LightSwitch

Active Directory Security Groups (Группы безопасности Active Directory)