Name – имя пользователя;
IsAuthenticated – возвращает true, если пользователь был аутентифицирован, в противном случае возвращает false;
AuthenticationType – возвращает тип аутентификации.
Ниже представлен пример кода, который позволяет получить эти свойства для текущего пользователя:
using System;
using System.Security.Principal;
class IdentitylTest
{
static void Main()
{
WindowsIdentity idn=WindowsIdentity.GetCurrent();
Console.WriteLine("Name: {0}",idn.Name);
Console.WriteLine(
"IsAuthenticated: {0}",idn.IsAuthenticated);
Console.WriteLine("Type: {0}",idn.AuthenticationType);
}
}
Второй по важности класс – WindowsPrincipal. Этот объект хранит информацию о ролях пользователя и позволяет определять, входит ли данный пользователь в заданную роль.
Ниже показан способ использования класса WindowsPrincipal:
using System;
using System.Security.Principal;
class PrincipalTest
{
static void Main()
{
WindowsIdentity idn=WindowsIdentity.GetCurrent();
WindowsPrincipal wspl=new WindowsPrincipal(idn);
if (wspl.IsInRole("DOMAIN\\Administrators"))
{
Console.WriteLine("I am administrator");
}
}
}
Понятие .NET и .NET Framework
Итак, мы написали свою первую программу на языке программирования C#. Вам наверняка известно, что язык С# появился совсем недавно и вы наверняка знаете, что в современном мире среди программистов популярны языки С++ и Java. Зачем нужен еще один язык программирования? Надо ли его изучать?
На самом деле сам по себе язык С# бесполезен (по крайней мере на мой взгляд) и купив одну из книг по введению в этот язык вы можете подумать, что выбросили кучу времени и денег на ветер, изучая еще один С++ подобный язык. На самом деле языку С# есть применение. Он является, пожалуй, самым мощным инструментов в программировании с использованием новых технологий Microsoft и был разработан специально, чтобы облегчить работу с этими технологиями и совместно с ними он представляет мощное средство в разработке программного обеспечения, тогда как другие языки менее адаптированы к новым технологиям.
Эта книга совсем не является введением в язык программирования C#. Он был выбран исключительно из-за того, что именно с ним наиболее просто показать всю мощь новых разработок Microsoft. Давайте кратко скажем о чем же эта книга. Эта книга о программировании под платформу .NET. Что же это за такая платформа спросите вы? Давайте ответим на этот вопрос.
Лет 6 тому назад, я все чаще начал слышать из уст программистов загадочное слово Java. На тот момент это был новый язык программирования, разработанный компанией Sun Microsystems. Его основным достоинством было то, что он позволял разрабатывать приложения ориентированные на сеть, причем эти приложения были платформенно независимыми, то есть одно и тоже приложение я мог использовать как под системой Windows так и под Unix. Однако, Java была не лишена и недостатков. Самый существенный – это скорость выполнения программ.
С появлением новых технологий (например XML), Java начала обрастать различными классами, которые каким-то образом работали с этими технологиями, но в самом языке они не были заложены. Но несмотря на недостатки она и по сей день пожалуй занимает второе место по популярности среди программистов (после С++ конечно). Однако, теперь мы имеем новую технологию, которая включает в себя все новейшие достижения. Это платформа .NET компании Microsoft.
Когда появилась бета версия библиотек, позволяющих программировать на платформе .NET под Windows, я подумал, что она не составит конкуренции Java, пока не появятся библиотеки под Unix-подобные системы, но как мне тогда казалось этого скорее всего не произойдет. Так вот, когда я начал писать эту книгу, то одновременно с этим я начал пробовать как работает первая бета версия библиотек под Unix. Таким образом, эта технология делает серьезную заявку, чтобы стать первой. И если программисты на Java после этих слов не захлопнут книгу, то они поймут на сколько она превосходит все существующее. Microsoft потратило около 6 лет на разработку платформы .NET и громадное количество денег, но я думаю, что эти вложения очень скоро окупятся.
Что представляет из себя .NET?
Под .NET будем понимать модель разработанную Microsoft в рамках которой программное обеспечение становится платформенно и аппаратно независимым. Причем эта модель ориентирована на работу через Интернет.
.NET платформа является платформой будущего поколения, на основе которой будут базироваться большинство приложений, кроме того она будет использована для построения новых версий системы Windows. Так система Windows 2003 Server имеет встроенную поддержку .NET Framework и наиболее оптимальным образом приспособлена для разработки и поддержки приложений .NET. Последние версии Windows XP также включают .NET Framework в свой состав.
Эта платформа построена таким образом, чтобы максимально облегчить разработку Web приложений.
В состав этой платформы входят технологии:
Позволяющие разрабатывать программные модели, которые содержат приложения и XML Web службы;
Строительные блоки для ваших будущих сервисов, которые уже реализуют некоторые функциональности, например .NET Passport;
Множество .NET Enterprise серверов, например Windows 2000, SQL Server 2000, Windows 2003, которые могут интегрироваться с .NET и запускать XML Web службы;
Клиенты, такие как Windows XP;
Утилиты, такие как Microsoft Visual Studio .NET, которые позволяют разрабатывать клиентские приложения и XML Web службы для платформы .NET.
Что такое .NET Framework?
Особое внимание стоит уделить .NET Framewok. Что же это такое?
.NET Framework - одна из технологий, входящих в .NET, которая является фундаментом для построения и запуска приложений и сервисов под .NET платформой. Благодаря этому каркасу могут интегрироваться между собой Windows приложения, XML Web службы и Web приложения, кроме того, все они строятся с помощью одних и тех же утилит. Эта технология построена таким образом, чтобы запускаться и работать на базе операционных систем Win32, однако как я уже упомянул, существуют версии и для других систем.
.NET Framework включает следующие возможности:
Общую языковую среду реального времени (Common Language Runtime), которая позволяет интегрироваться приложениям друг с другом, поддерживать общую систему защиты и систему управления памятью независимо от языка, на котором они написаны. В эту среду входят следующие компоненты:
|