Как я могу использовать учетную запись Microsoft для аутентификации на моем веб-сайте

У меня есть веб-сайт, где требуется идентификация пользователей, я бы предпочел не создавать их еще одно коммандное имя пользователя/пароля, которое они должны запомнить

есть ли SDK для разрешения аутентификации из учетной записи Microsoft?

Ответ 2

Проверьте класс основного контекста. Вы можете создать его с использованием контекста localhost (Machine) или домена и использовать метод ValidateCrentials (имя пользователя, пароль) для аутентификации с использованием учетных данных Windows.

http://msdn.microsoft.com/en-us/library/bb154889.aspx

Вот как я использовал его на своем веб-сайте. (Поместите это в метод POST вашего контроллера аутентификации или что-то в этом роде)

В приведенном ниже коде будет указано имя пользователя "bob" или "localhost\bob" или "DOMAIN\bob" и т.д. и получить правильный PrincipalContext для аутентификации пользователя. ПРИМЕЧАНИЕ: здесь регистр нечувствителен.

        public bool ValidateCredentials(string username, System.Security.SecureString password)
    {
        string domain = Environment.MachineName;
        if (username.Contains("\\"))
        {
            domain = username.Split('\\')[0];
            username = username.Split('\\')[1];
        }

        if (domain.Equals("localhost", StringComparison.CurrentCultureIgnoreCase))
            domain = Environment.MachineName;

        if (domain.Equals(Environment.MachineName, StringComparison.CurrentCultureIgnoreCase))
            using (PrincipalContext context = new PrincipalContext(ContextType.Machine))
            {
                return context.ValidateCredentials(username, password.ToUnsecureString());
            }
        else
            using(PrincipalContext context = new PrincipalContext(ContextType.Domain))
            {
                //return context.ValidateCredentials(domain + "\\" + username, password.ToUnsecureString());
                return context.ValidateCredentials(username, password.ToUnsecureString());
            }


    }

Ответ 3

Microsoft предоставляет Live Connect SDK для интеграции сервисов Microsoft в ваши приложения, включая поставщика удостоверений учетных записей Microsoft.

В Server-Side Scenarios есть конкретный пример, который должен охватывать все, что вам нужно интегрировать.

Ответ 4

Вы имеете в виду из учетной записи Windows активного каталога? Если это так, вы можете использовать проверку подлинности Windows и просто указате им индексную страницу автоматически.

http://msdn.microsoft.com/en-us/library/ff647405.aspx

Используйте следующие команды в своем коде за файлом, чтобы получить соответствующую информацию для входа:

System.Security.Principal.WindowsIdentity.GetCurrent().Name
User.Identity.IsAuthenticated
User.Identity.AuthenticationType
User.Identity.Name