Tag Archives: .NET

Обновление для уязвимости ASP.NET

На прошлой неделе я уже писал об уязвимости в ASP.NET. Мы активно работаем над выпуском обновления безопасности, которое решит проблему, и я сообщу, когда данное обновление будет доступно. Исправленное временное решение и дополнительный шаг URLScan В моей предыдущей статье (англ.) я рассмотрел временное решение, которое вы могли сразу применить на ваших сайтах и приложениях, чтобы не дать злоумышленникам воспользоваться […]

ASP.NET уязвимость безопасности

Пару дней назад в Microsoft Security Advisory было опубликовано сообщение об уязвимости безопасности ASP.NET. Эта уязвимость присутствует во всех версиях ASP.NET. Информация об уязвимости была сообщена в пятницу на конференции по безопасности. Microsoft рекомендует всем пользователям срочно применить временное решение (описано ниже), чтобы не дать злоумышленникам воспользоваться уязвимостью ваших ASP.NET приложений. Что позволяет сделать уязвимость? […]

пример как отправлять почту в C#

пример как отправлять почту в C#   (на примере аккаунта gmail, используя ssl) using System; using System.Net; using System.Net.Mail; namespace MailSend { class Program { static void Main(string[] args) { MailMessage message; SmtpClient client; message = new System.Net.Mail.MailMessage( “MailTo<mailto@gmail.com>”, “mailfrom@gmail.com”, “Subject”, “Body”); client = new SmtpClient(“smtp.gmail.com”, 587) { Credentials = new NetworkCredential(“mailfrom@gmail.com”, “PASSWORD”), EnableSsl = […]

[C#] [.NET] Как сделать так, чтобы обычная программа запускалась с правами администратора под Windows Vista (Windows 7)

Как сделать так, чтобы обычная программа запускалась с правами администратора под Windows Vista (Windows 7)   Допустим у нас есть обычное приложение Windows Forms Application, написанное C#, но нам  требуется выполнение каких-нибудь операций с правами администратора. Для этого нужно создать манифест файл в обычном текстовом редакторе,  например: <?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?> <assembly xmlns=”urn:schemas-microsoft-com:asm.v1″ manifestVersion=”1.0″> <assemblyIdentity version=”1.0.0.0″ processorArchitecture=”X86″ name=”YourApplicationName” […]

Как сделать скриншот, когда на клавиатуре нет или не работает кнопка PrintScreen

пишем простенькую программу на C#:   using System; using System.Windows.Forms; using System.Drawing; namespace printscreen { static class Program { [STAThread] static void Main() { System.Threading.Thread.Sleep(5000); var bounds = Screen.GetBounds(System.Drawing.Point.Empty); using (Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height)) { using (Graphics g = Graphics.FromImage(bitmap)) { g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size); } Clipboard.SetImage(bitmap); } } } }   при запуске […]

C# клонировать list

Если элементы списка имеют тип значений, то чтобы склонировать list достаточно сделать следующее: List<int> newList = new List<int>(oldList);     Если элементы имеют ссылочный тип и имеют конструктор копирования, то тогда можно сделать так: List<SomeType> oldList = new List<SomeType>(); List<SomeType> newList = new List<SomeType>(oldList.Count); oldList.ForEach((item)=> { newList.Add(new SomeType(item));});  

C# удалить повторяющиеся пробелы

Иногда на C# (и не только) требуется удалить повторяющиеся пробелы в строке. Например, дана строка: a b c d и нужно получить на выходе: a b c d Для решения этой задачи достаточно воспользоваться регулярным выражением, которое также заменит повторяющиеся символы табуляции и новой строки: str = Regex.Replace(str, @”\s+”, ” “);

c# количество вхождений подстроки в строку

чтобы подсчитать количество вхождений подстроки substring в строку sourcestring: string sourcestring = “abcd1234abcd”; string substring = “abcd”; int count = (sourcestring.Length – sourcestring.Replace(substring, “”).Length)/substring.Length;    

C# сохранить поток в файл

сохранить поток (Stream) в файл (filename) можно следующим образом: public void SaveStreamToFile(Stream input, String filename) {      using (Stream output = File.OpenWrite(filename))      {      byte[] buffer = new byte[8 * 1024];      int len;      while ( (len = input.Read(buffer, 0, buffer.Length)) > 0)      {      output.Write(buffer, 0, len);      }      } }