Авторизация в приложении через Вконтакте VK на C#

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

Предложенный вариант использовался для авторизации через токен VK в серверном приложении.

Для начала создадим метод отправки HTTP запроса и получения ответа от сервера:

/// <summary>
        /// Отправляем запрос на получение 
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        private static string GetRequest(string host, string req)
        {
            string str = "";

            var Vk = new HttpClient();
            Vk.DefaultRequestHeaders.Add("Connection", "close");

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(req);
            request.UseDefaultCredentials = true;
            request.PreAuthenticate = true;
            request.Credentials = CredentialCache.DefaultCredentials;
            request.Method = "GET";
            request.Host = host;
            request.UserAgent = "RM";
            request.ContentType = "application/x-www-form-urlencoded";
            request.KeepAlive = false;

            using (HttpWebResponse responsevk = (HttpWebResponse)request.GetResponse())
            using (var stream = responsevk.GetResponseStream())
            using (var streamReader = new StreamReader(stream, Encoding.UTF8))
            {
                str = streamReader.ReadToEnd();
            }
            return str;
        }


Подробнее

Cors Policy в .Net Core Web Api - добавляем поддержку C#

Для добавления поддержки CorsPolicy в .NET Core приложении открываем файл Startup.cs и меняем методы ConfigureServices и Configure, следующим образом:

ConfigureServices

public void ConfigureServices(IServiceCollection services)
        {
            // Добавляем CorsPolicy
            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                    builder => builder.AllowAnyOrigin()
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials());
            });
            
            
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }
Подробнее

Улучшение качества сохраняемого изображения SixLabors.ImageSharp C#

Задать качество при сохранении изображения с использованием библиотеки SixLabors.ImageSharp можно следующим образом:

image.SaveAsJpeg(path_add, new SixLabors.ImageSharp.Formats.Jpeg.JpegEncoder { Quality = 100 });
Подробнее

Bootstrap DateTimePicker - пример выбора только месяца из выпадающего меню.

В данном примере будет продемонстрировано, как сделать выпадающее меню выбора только месяца, без числа, с использованием bootstrap-datetimepicker.

Итак, для реализации задуманного нам понадобятся компоненты:
bootstrap — сам bootstrap
jquery — Библиотека JQuery
moment — Библиотека для работы со временем, в нашем примере будет использована moment-with-locales
bootstrap-datetimepicker — Библиотека выпадающего меню выбора даты

В дополнение, в примере будут использованы библиотеки respond.js и html5shiv.min.js для того, чтобы наша затея корректно отображалась и в IE.

Подробнее

OpenXML - Пример создания Excel файла на C#

В данной публикации приведен пример генерации Excel файла при помощи библиотеки OpenXML.
Отличие этой библиотеки OpenXML от Microsoft.Office.Interop.Excel в быстродействии которое на порядок выше.

Для работы с Excel документами необходимо установить расширение DocumentFormat.OpenXML из Nuget, оно позволит создавать Excel документы для версии Microsoft Office не ниже 2010.

Так-же для работы нам понадобится добавить в проект стандартную библиотеку WindowsBase, просто через Add References, без нее приложение не скомпилируется.

Ниже я приведу пример того, с чем работал сам, первоначальный вариант примера был найден где-то на просторах англоязычного интернета, переработан и теперь выглядит так — как выглядит, с моими комментариями и правками.

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



Исходный код примера консольного приложения формирующего Excel на изображении выше:

Подробнее

C# .NET - Получение информации по пользователю в домене

В данной публикации приведен пример получения информации по пользователю в домене AD с использованием C#.

Для того чтобы всё заработало необходимо подключить библиотеку:

using System.DirectoryServices.AccountManagement;



Затем можно получать параметры по пользователю.

            PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

            var loginName = HttpContext.User.Identity.Name.ToString();

            UserPrincipal user = UserPrincipal.FindByIdentity(ctx, loginName);

            if (user != null)
            {
                // Получаем SID пользователя
                var userSid = user.Sid;

                // Получаем EMail пользователя
                var userEmail = user.EmailAddress;

                // Получаем Количество неудачных попыток входа пользователя
                var userBadLogons = user.BadLogonCount;

                // ФИО пользователя ( отображаемое имя)
                var userName = user.DisplayName;

                // Системное имя (по сути логин)
                var userSamAccountName = user.SamAccountName;

                var userFullName = String.Format("{0} {1} {2}", userName, userSamAccountName, userBadLogons);
                ViewBag.Message = userFullName;
            }
Подробнее

Руководство по Python Bottle (Перевод) Часть 2 - Hello World

В предыдущей части мы рассмотрели установку Bottle:
Руководство по Python Bottle (Перевод) Часть 1 — Установка

В этой части мы пойдем дальше и рассмотрим простой пример приложения сайта «Hello World».

2. Простой пример («Hello World!»)

Здесь предполагается что у вас уже установлен Bottle, либо библиотека скопирована в папку проекта.

Начнем с очень простого примера «Hello World!»:

Подробнее

Руководство по Python Bottle (Перевод) Часть 1 - Установка

Это руководство познакомит вас с концепциями и возможностями фреймворка Bottle. Данное руководство можно читать от начала и до конца, как учебный материал для ознакомления. Также можно использовать руководство как справочник для ознакомления с интересующими особенностями фреймворка Bottle.
Данное руководство является адаптированным переводом информации с ресурса BOTTLEPY.ORG от 20.04.2017г.

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

Итак, приступим. 

Подробнее

Пример простого калькулятора на Java Script (исключительно в учебных целях).

В этой публикации продемонстрировано, как при помощи bootstrap и довольно простого кода на jаvascript сделать Web-страницу способную решать квадратные уравнения.
Здесь же будет приведен более интересный пример кода, который реализует очень простой онлайн калькулятор.

Вот как будет выглядеть наш калькулятор:


Итак, приступим…

Подробнее

JavaScript - Основы, как это работает и как тестировать (Часть 2).

В предыдущей части мы уже рассмотрели как добавить и отладить jаvascript код на страницу с использованием встроенной консоли в браузере на примере решения квадратного уравнения. Однако, использовать консоль удобно для тестирования написанных функций, но пользователю для работы надо бы что-то поудобнее. А именно: привычные поля ввода и кнопочки.

В этой публикации мы рассмотрим пример добавления в нашу страничку «няшных» кнопочек и полей ввода, с использованием Bootstrap и библиотеки JQuery.

Итак, приступим. 

Подробнее