Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Для разработки новых веб-приложений рекомендуется минимальные
Рекомендуется использовать самый безопасный вариант проверки подлинности. Сведения о приложениях .NET, развернутых в Azure, см. в статье:
Azure Key Vault и .NET Aspire обеспечивают наиболее безопасный способ хранения и получения секретов. Azure Key Vault — это облачная служба, которая защищает ключи шифрования и секреты, такие как сертификаты, строки подключения и пароли. Сведения о .NET Aspire см. в разделе Безопасное взаимодействие между размещением и интеграцией клиентов.
Избегайте предоставления учетных данных владельца ресурса, так как он:
- Предоставляет клиенту пароль пользователя.
- Значительный риск безопасности.
- Следует использовать только в том случае, если другие потоки проверки подлинности недоступны.
При развертывании приложения на тестовом сервере переменная среды может использоваться для установки строки подключения на тестовый сервер базы данных. Переменные среды обычно хранятся в простом незашифрованном тексте. Если компьютер или процесс скомпрометированы, переменные среды могут быть доступны ненадежным сторонам. Мы не рекомендуем использовать переменные среды для хранения строки подключения к рабочей среде, так как это не самый безопасный подход.
Рекомендации по данным конфигурации:
- Никогда не хранить пароли или другие конфиденциальные данные в коде поставщика конфигурации или в файлах конфигурации обычного текста.
- Не используйте рабочие секреты в средах разработки или тестирования.
- Укажите секреты вне проекта, чтобы они не могли быть случайно зафиксированы в репозитории исходного кода.
Visual Studio 2017 и ASP.NET 4.7.2 расширяют параметры безопасности для одностраничных приложений (SPA) и веб-API для интеграции со внешними службами проверки подлинности, включая несколько служб проверки подлинности OAuth/OpenID и социальных сетей: учетные записи Майкрософт, Twitter, Facebook и Google.
В этом пошаговом руководстве
Включение Проверки Подлинности Майкрософт
Необходимые условия
Чтобы выполнить приведенные ниже примеры в этом пошаговом руководстве, вам потребуется следующее:
Visual Studio 2017
Учетная запись разработчика с идентификатором приложения и секретным ключом для одной из следующих служб проверки подлинности социальных сетей:
- Учетные записи Майкрософт (https://go.microsoft.com/fwlink/?LinkID=144070)
- Twitter (https://dev.twitter.com/)
- Facebook (https://developers.facebook.com/)
- Google (https://developers.google.com/)
Использование внешних служб проверки подлинности
Множество внешних служб проверки подлинности, которые в настоящее время доступны веб-разработчикам, помогают сократить время разработки при создании новых веб-приложений. Веб-пользователи обычно имеют несколько существующих учетных записей для популярных веб-служб и веб-сайтов социальных сетей, поэтому при реализации веб-приложений служб проверки подлинности из внешнего веб-службы или веб-сайта социальных сетей он экономит время разработки, которое было бы потрачено на создание реализации проверки подлинности. Использование внешней службы проверки подлинности сохраняет пользователей от необходимости создавать другую учетную запись для веб-приложения, а также запоминать другое имя пользователя и пароль.
В прошлом разработчики имели два варианта: создать собственную реализацию проверки подлинности или узнать, как интегрировать внешнюю службу проверки подлинности в свои приложения. На самом базовом уровне на следующей схеме показан простой поток запросов для агента пользователя (веб-браузера), который запрашивает сведения из веб-приложения, настроенного для использования внешней службы проверки подлинности:
На предыдущей схеме агент пользователя (или веб-браузер в этом примере) выполняет запрос к веб-приложению, который перенаправляет веб-браузер во внешнюю службу проверки подлинности. Агент пользователя отправляет свои учетные данные во внешнюю службу проверки подлинности, и если агент пользователя успешно проходит проверку, внешняя служба проверки подлинности перенаправляет агента пользователя в исходное веб-приложение с некоторым токеном, который агент пользователя отправляет в веб-приложение. Веб-приложение будет использовать маркер для проверки успешности проверки подлинности агента пользователя внешней службой проверки подлинности, а веб-приложение может использовать маркер для сбора дополнительных сведений об агенте пользователя. После завершения обработки сведений агента пользователя веб-приложение вернет соответствующий ответ агенту пользователя на основе параметров авторизации.
В этом втором примере агент пользователя согласовывается с веб-приложением и внешним сервером авторизации, а веб-приложение выполняет дополнительную связь с внешним сервером авторизации для получения дополнительных сведений об агенте пользователя:
Visual Studio 2017 и ASP.NET 4.7.2 упрощают интеграцию со службами внешней проверки подлинности для разработчиков, предоставляя встроенную интеграцию для следующих служб проверки подлинности:
- Учетные записи Майкрософт (учетные записи Windows Live ID)
- Твиттер
В примерах этого пошагового руководства показано, как настроить каждую из поддерживаемых внешних служб проверки подлинности с помощью нового шаблона веб-приложения ASP.NET, который поставляется с Visual Studio 2017.
Заметка
При необходимости может потребоваться добавить полное доменное имя в параметры внешней службы проверки подлинности. Это требование основано на ограничениях безопасности для некоторых внешних служб проверки подлинности, которые требуют полное доменное имя в параметрах приложения для сопоставления полного доменного имени, используемого клиентами. (Действия, описанные в этом случае, будут значительно отличаться для каждой внешней службы проверки подлинности; вам потребуется обратиться к документации для каждой внешней службы проверки подлинности, чтобы узнать, требуется ли это и как настроить эти параметры.) Если необходимо настроить iis Express для использования полного доменного имени для тестирования этой среды, см. раздел Настройка IIS Express для использования полного доменного имени раздела далее в этом пошаговом руководстве.
Создание примера веб-приложения
Следующие шаги помогут вам создать пример приложения с помощью шаблона веб-приложения ASP.NET, и вы будете использовать это пример приложения для каждой из внешних служб проверки подлинности далее в этом пошаговом руководстве.
Запустите Visual Studio 2017 и выберите новый проект на начальной странице. Или в меню файла
При отображении диалогового окна Новый проект выберите Установленные и разверните Visual C#. В разделе Visual C#выберите Web. В списке шаблонов проектов выберите шаблон ASP.NET веб-приложение (.Net Framework). Введите имя проекта и нажмите кнопку ОК.
При появлении нового проекта ASP.NET выберите шаблон одностраничного приложения и нажмите Создать проект.
Подождите, как Visual Studio 2017 создает проект.
После завершения создания проекта Visual Studio 2017 откройте файл Startup.Auth.cs, расположенный в папке App_Start.
При первом создании проекта ни одна из внешних служб проверки подлинности не включена в Startup.Auth.cs файле; Ниже показано, как может выглядеть код, в разделах, выделенных для включения внешней службы проверки подлинности и любых соответствующих параметров для использования учетных записей Майкрософт, Twitter, Facebook или Google authentication с приложением ASP.NET:
using System;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.AspNet.Identity.Owin;
using Microsoft.Owin;
using Microsoft.Owin.Security.Cookies;
using Microsoft.Owin.Security.DataProtection;
using Microsoft.Owin.Security.Google;
using Microsoft.Owin.Security.OAuth;
using Owin;
using WebApplication1.Models;
using WebApplication1.Providers;
namespace WebApplication1
{
public partial class Startup
{
// Enable the application to use OAuthAuthorization. You can then secure your Web APIs
static Startup()
{
PublicClientId = "web";
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
AuthorizeEndpointPath = new PathString("/Account/Authorize"),
Provider = new ApplicationOAuthProvider(PublicClientId),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AllowInsecureHttp = true
};
}
public static OAuthAuthorizationServerOptions OAuthOptions { get; private set; }
public static string PublicClientId { get; private set; }
// For more information on configuring authentication, please visit https://go.microsoft.com/fwlink/?LinkId=301864
public void ConfigureAuth(IAppBuilder app)
{
// Configure the db context, user manager and signin manager to use a single instance per request
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
// Enable the application to use a cookie to store information for the signed in user
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(20),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
// Use a cookie to temporarily store information about a user logging in with a third party login provider
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
// Enables the application to temporarily store user information when they are verifying the second factor in the two-factor authentication process.
app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));
// Enables the application to remember the second login verification factor such as phone or email.
// Once you check this option, your second step of verification during the login process will be remembered on the device where you logged in from.
// This is similar to the RememberMe option when you log in.
app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie);
// Enable the application to use bearer tokens to authenticate users
app.UseOAuthBearerTokens(OAuthOptions);
// Uncomment the following lines to enable logging in with third party login providers
//app.UseMicrosoftAccountAuthentication(
// clientId: "",
// clientSecret: "");
//app.UseTwitterAuthentication(
// consumerKey: "",
// consumerSecret: "");
//app.UseFacebookAuthentication(
// appId: "",
// appSecret: "");
//app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
//{
// ClientId = "",
// ClientSecret = ""
//});
}
}
}
При нажатии клавиши F5 для сборки и отладки веб-приложения отобразится экран входа, в котором вы увидите, что внешние службы проверки подлинности не определены.
В следующих разделах вы узнаете, как включить каждую из внешних служб проверки подлинности, предоставляемых ASP.NET в Visual Studio 2017.
Включение проверки подлинности Facebook
Для работы с помощью проверки подлинности Facebook необходимо создать учетную запись разработчика Facebook, а для работы проекта потребуется идентификатор приложения и секретный ключ из Facebook. Сведения о создании учетной записи разработчика Facebook и получении идентификатора приложения и секретного ключа см. в https://go.microsoft.com/fwlink/?LinkID=252166.
Получив идентификатор приложения и секретный ключ, выполните следующие действия, чтобы включить проверку подлинности Facebook для веб-приложения:
Когда проект открыт в Visual Studio 2017, откройте файл Startup.Auth.cs.
Найдите раздел кода для аутентификации через Facebook.
// Uncomment the following lines to enable logging in with third party login providers //app.UseMicrosoftAccountAuthentication( // clientId: "", // clientSecret: ""); //app.UseTwitterAuthentication( // consumerKey: "", // consumerSecret: ""); //app.UseFacebookAuthentication( // appId: "", // appSecret: ""); //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions() //{ // ClientId = "", // ClientSecret = "" //});
Удалите символы "//", чтобы раскомментировать выделенные строки кода, а затем добавьте идентификатор приложения и секретный ключ. После добавления этих параметров можно перекомпилировать проект:
// Uncomment the following lines to enable logging in with third party login providers //app.UseMicrosoftAccountAuthentication( // clientId: "", // clientSecret: ""); //app.UseTwitterAuthentication( // consumerKey: "", // consumerSecret: ""); //app.UseFacebookAuthentication( // appId: "426f62526f636b73", // appSecret: ""); //app.UseGoogleAuthentication();
Когда вы нажимаете клавишу F5, чтобы открыть веб-приложение в веб-браузере, вы увидите, что Facebook определен как внешняя служба проверки подлинности:
Щелкнув кнопку Facebook, браузер будет перенаправлен на страницу входа в Facebook:
После ввода учетных данных Facebook и нажатия кнопки Войтивеб-браузер будет перенаправлен обратно в веб-приложение, где система запросит имя пользователя , которое вы хотите связать с вашей учетной записью Facebook.
После ввода имени пользователя и нажатия кнопки регистрации веб-приложение отобразит домашнюю страницу по умолчанию учетной записи Facebook:
Включение проверки подлинности Google
При использовании проверки подлинности Google необходимо создать учетную запись разработчика Google, а для работы проекта потребуется идентификатор приложения и секретный ключ от Google. Сведения о создании учетной записи разработчика Google и получении идентификатора приложения и секретного ключа см. в https://developers.google.com.
Чтобы включить проверку подлинности Google для веб-приложения, выполните следующие действия.
Когда проект открыт в Visual Studio 2017, откройте файл Startup.Auth.cs.
Найдите раздел аутентификации Google в коде.
// Uncomment the following lines to enable logging in with third party login providers //app.UseMicrosoftAccountAuthentication( // clientId: "", // clientSecret: ""); //app.UseTwitterAuthentication( // consumerKey: "", // consumerSecret: ""); //app.UseFacebookAuthentication( // appId: "", // appSecret: ""); //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions() //{ // ClientId = "", // ClientSecret = "" //});
Удалите символы "//", чтобы раскомментировать подсвеченные строки кода, а затем добавьте идентификатор приложения и секретный ключ. После добавления этих параметров можно перекомпилировать проект:
// Uncomment the following lines to enable logging in with third party login providers //app.UseMicrosoftAccountAuthentication( // clientId: "", // clientSecret: ""); //app.UseTwitterAuthentication( // consumerKey: "", // consumerSecret: ""); //app.UseFacebookAuthentication( // appId: "", // appSecret: ""); app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions() { ClientId = "477522346600.apps.googleusercontent.com", ClientSecret = "gobkdpbocikdfbnfahjladnetpdkvmic" });
Когда вы нажимаете клавишу F5, чтобы открыть веб-приложение в веб-браузере, вы увидите, что Google определен как внешняя служба проверки подлинности:
Щелкнув кнопку Google, браузер будет перенаправлен на страницу входа Google:
После ввода учетных данных Google и нажатия кнопки Войти, Google предложит вам убедиться, что веб-приложение имеет разрешение на доступ к вашей учетной записи Google.
Щелкнув Принять, веб-браузер будет перенаправлен обратно в веб-приложение, которое предложит вам имя пользователя, которое вы хотите связать с вашей учетной записью Google:
После ввода имени пользователя и нажатия кнопки регистрации веб-приложение отобразит домашнюю страницу по умолчанию учетной записи Google:
Включение проверки подлинности Майкрософт
Проверка подлинности Майкрософт требует создания учетной записи разработчика и требует идентификатора клиента и секрета клиента для работы. Сведения о создании учетной записи разработчика Майкрософт и получении идентификатора клиента и секрета клиента см. в https://go.microsoft.com/fwlink/?LinkID=144070.
Получив ключ потребителя и секрет потребителя, выполните следующие действия, чтобы включить проверку подлинности Майкрософт для веб-приложения:
Когда проект открыт в Visual Studio 2017, откройте файл Startup.Auth.cs.
Найдите раздел проверки подлинности Майкрософт кода:
// Uncomment the following lines to enable logging in with third party login providers //app.UseMicrosoftAccountAuthentication( // clientId: "", // clientSecret: ""); //app.UseTwitterAuthentication( // consumerKey: "", // consumerSecret: ""); //app.UseFacebookAuthentication( // appId: "", // appSecret: ""); //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions() //{ // ClientId = "", // ClientSecret = "" //});
Удалите символы "//", чтобы раскомментировать выделенные строки кода, а затем добавьте идентификатор клиента и секрет клиента. После добавления этих параметров можно перекомпилировать проект:
// Uncomment the following lines to enable logging in with third party login providers app.UseMicrosoftAccountAuthentication( clientId: "426f62526f636b73", clientSecret: "57686f6120447564652c2049495320526f636b73"); //app.UseTwitterAuthentication( // consumerKey: "", // consumerSecret: ""); //app.UseFacebookAuthentication( // appId: "", // appSecret: ""); //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions() //{ // ClientId = "", // ClientSecret = "" //});
Когда вы нажимаете клавишу F5, чтобы открыть веб-приложение в веб-браузере, вы увидите, что Корпорация Майкрософт определена как внешняя служба проверки подлинности:
Щелкнув кнопку Microsoft, браузер будет перенаправлен на страницу входа Майкрософт:
После ввода учетных данных Майкрософт и нажатия кнопки Войти, вам будет предложено подтвердить, что веб-приложение имеет права доступа к вашей учетной записи Майкрософт.
Когда вы щелкните Да, ваш браузер будет перенаправлен обратно в ваше веб-приложение, которое предложит вам ввести имя пользователя, которое вы хотите связать с вашей учетной записью Microsoft:
После ввода имени пользователя и нажатия кнопки регистрации веб-приложение отобразит домашнюю страницу по умолчанию учетной записи Майкрософт:
Включение проверки подлинности Twitter
Проверка подлинности Twitter требует создания учетной записи разработчика, а для работы требуется ключ потребителя и секрет потребителя. Сведения о создании учетной записи разработчика Twitter и получении ключа потребителя и секрета потребителя см. в https://go.microsoft.com/fwlink/?LinkID=252166.
Получив ключ потребителя и секрет потребителя, выполните следующие действия, чтобы включить проверку подлинности Twitter для веб-приложения:
Когда проект открыт в Visual Studio 2017, откройте файл Startup.Auth.cs.
Найдите раздел аутентификации кода Twitter.
// Uncomment the following lines to enable logging in with third party login providers //app.UseMicrosoftAccountAuthentication( // clientId: "", // clientSecret: ""); //app.UseTwitterAuthentication( // consumerKey: "", // consumerSecret: ""); //app.UseFacebookAuthentication( // appId: "", // appSecret: ""); //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions() //{ // ClientId = "", // ClientSecret = "" //});
Удалите символы "//", чтобы раскомментировать выделенные строки кода, а затем добавьте ключ клиента и секрет клиента. После добавления этих параметров можно перекомпилировать проект:
// Uncomment the following lines to enable logging in with third party login providers //app.UseMicrosoftAccountAuthentication( // clientId: "", // clientSecret: ""); app.UseTwitterAuthentication( consumerKey: "426f62526f636b73", consumerSecret: "57686f6120447564652c2049495320526f636b73"); //app.UseFacebookAuthentication( // appId: "", // appSecret: ""); //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions() //{ // ClientId = "", // ClientSecret = "" //});
Когда вы нажимаете клавишу F5, чтобы открыть веб-приложение в веб-браузере, вы увидите, что Twitter определен как внешняя служба проверки подлинности:
Щелкнув кнопку Twitter, браузер будет перенаправлен на страницу входа в Twitter:
После ввода учетных данных Twitter и нажатия кнопки Авторизовать приложение, веб-браузер будет перенаправлен обратно в веб-приложение, которое предложит вам имя пользователя, которое вы хотите связать с вашей учетной записью Twitter:
После ввода имени пользователя и нажатия кнопки регистрации веб-приложение отобразит домашнюю страницу по умолчанию для учетной записи Twitter:
Дополнительные сведения
Дополнительные сведения о создании приложений, использующих OAuth и OpenID, см. в следующих URL-адресах:
Объединение внешних служб проверки подлинности
Для повышения гибкости можно одновременно определить несколько внешних служб проверки подлинности. Это позволяет пользователям веб-приложения использовать учетную запись из любой из включенных внешних служб проверки подлинности:
Настройка IIS Express для использования полного доменного имени
Некоторые внешние поставщики проверки подлинности не поддерживают тестирование приложения с помощью HTTP-адреса, например http://localhost:port/
. Чтобы обойти эту проблему, можно добавить сопоставление статического полного доменного имени (FQDN) в файл HOSTS и настроить параметры проекта в Visual Studio 2017, чтобы использовать полное доменное имя для тестирования и отладки. Для этого выполните следующие действия.
Добавьте статическое полное доменное имя, сопоставленное с файлом HOSTS:
Откройте командную строку с повышенными привилегиями в Windows.
Введите следующую команду:
блокнот %WinDir%\system32\drivers\etc\hosts
Добавьте запись, как показано ниже, в файл HOSTS:
127.0.0.1 www.wingtiptoys.com
Сохраните и закройте файл HOSTS.
Настройте проект Visual Studio для использования полного доменного имени:
- Когда проект открыт в Visual Studio 2017, щелкните меню Project, а затем выберите свойства проекта. Например, вы можете выбрать WebApplication1 свойства.
- Выберите вкладку Web.
- Введите FQDN для URL-адреса проекта . Например, вы введете http://www.wingtiptoys.com, если это было полное доменное имя, которое вы добавили в файл HOSTS.
Настройте IIS Express для использования полного доменного имени для приложения:
Откройте командную строку с повышенными привилегиями в Windows.
Введите следующую команду, чтобы изменить папку IIS Express:
cd /d "%ProgramFiles%\IIS Express"
Введите следующую команду, чтобы добавить полное доменное имя в приложение:
appcmd.exe задать конфигурацию -section:system.applicationHost/sites /+"[name='WebApplication1'].bindings. [protocol='http',bindingInformation='*:80:www.wingtiptoys.com']" /commit:apphost
Где WebApplication1 — это имя проекта и bindingInformation содержит номер порта и полное доменное имя, которое вы хотите использовать для тестирования.
Как получить настройки вашего приложения для аутентификации в Microsoft
Связывание приложения с Windows Live для проверки подлинности Майкрософт — это простой процесс. Если вы еще не связали приложение с Windows Live, выполните следующие действия.
Перейдите к https://go.microsoft.com/fwlink/?LinkID=144070 и введите имя учетной записи Майкрософт и пароль, когда будет предложено, а затем щелкните Войти:
Выберите Добавить приложение, введите имя вашего приложения, когда появится запрос, и затем нажмите Создать:
Выберите приложение в разделе Имя и откроется страница свойств приложения.
Введите домен перенаправления для приложения. Скопируйте идентификатор приложения
и в разделе Секреты приложений выберитеСоздать пароль . Скопируйте отображаемый пароль. Идентификатор приложения и пароль — это идентификатор клиента и секрет клиента. Нажмите кнопку ОК, а затем Сохранить.
Необязательно. Отключение локальной регистрации
Текущая ASP.NET функция локальной регистрации не предотвращает создание учетных записей участников автоматических программ (ботов); Например, с помощью технологии предотвращения и проверки ботов, таких как CAPTCHA. Из-за этого необходимо удалить локальную форму входа и ссылку регистрации на странице входа. Для этого откройте в проекте страницу _Login.cshtml, а затем закомментируйте строки с локальной панелью входа и ссылкой на регистрацию. Результирующая страница должна выглядеть следующим примером кода:
<!-- ko with: login -->
<hgroup class="title">
<h1>Log in</h1>
</hgroup>
<div class="row-fluid">
@*<section class="span7">
<form>
<fieldset class="form-horizontal">
<legend>Use a local account to log in.</legend>
<ul class="text-error" data-bind="foreach: errors">
<li data-bind="text: $data"></li>
</ul>
<div class="control-group">
<label for="UserName" class="control-label">User name</label>
<div class="controls">
<input type="text" name="UserName" data-bind="value: userName, hasFocus: true" />
<span class="text-error" data-bind="visible: userName.hasError, text: userName.errorMessage"></span>
</div>
</div>
<div class="control-group">
<label for="Password" class="control-label">Password</label>
<div class="controls">
<input type="password" name="Password" data-bind="value: password" />
<span class="text-error" data-bind="visible: password.hasError, text: password.errorMessage"></span>
</div>
</div>
<div class="control-group">
<div class="controls">
<label class="checkbox">
<input type="checkbox" name="RememberMe" data-bind="checked: rememberMe" />
<label for="RememberMe">Remember me?</label>
</label>
</div>
</div>
<div class="form-actions no-color">
<button type="submit" class="btn" data-bind="click: login, disable: loggingIn">Log in</button>
</div>
<p><a href="#" data-bind="click: register">Register</a> if you don't have a local account.</p>
</fieldset>
</form>
</section>*@
<section class="span5">
<h2>Log in using another service</h2>
<div data-bind="visible: loadingExternalLogin">Loading...</div>
<div data-bind="visible: !loadingExternalLogin()">
<div class="message-info" data-bind="visible: !hasExternalLogin()">
<p>
There are no external authentication services configured. See <a href="https://go.microsoft.com/fwlink/?LinkId=252166">this article</a>
for details on setting up this ASP.NET application to support logging in via external services.
</p>
</div>
<form data-bind="visible: hasExternalLogin">
<fieldset class="form-horizontal">
<legend>Use another service to log in.</legend>
<p data-bind="foreach: externalLoginProviders">
<button type="submit" class="btn" data-bind="text: name, attr: { title: 'Log in using your ' + name() + ' account' }, click: login"></button>
</p>
</fieldset>
</form>
</div>
</section>
</div>
<!-- /ko -->
После отключения локальной панели входа и ссылки регистрации страница входа будет отображать только внешних поставщиков проверки подлинности, которые вы включили: