Kimlik

Kimlik Kimlik Nedir? Kullanıcı kimliği Microsoft.NET Çerçevesinde nasıl ifade edilir ? Yazar: Yunus Emre ALPÖZEN Yazıldığı Tarih: 24.09.2004 İstatistik: Bu makale 407 defa okundu.Bir kimlik nesnesi doğrulanan kullanıcının, hesap adı ve kimlik doğrulama tipi gibi bilgileri içerir. Microsoft .NET Çerçevesinde tanımlı üç farklı kimlik nesnesi bulunmaktadır: Windows Kimliği(Windows Identity), Windows tabanlı işletim sistem tarafından desteklenen kullanıcının bilgilerini içerir. Windows kimliği başka bir kullanıcıyı taklit edebilme özelliğine sahiptir. WindowsIdentity sınıfı da bu tarz bir kimlik bilgisi sağlar. Genel Kimlik(Generic Identity), Windows kimlik doğrulamasından ayrı olarak uygulamaya özgü bir kimlik denetim mekanizmasını destekleyen bir kullanıcının bilgilerini içerir. GenericIdentity sınıfı bu tarz bir kimlik bilgisi sağlar. Özel Kimlik(Custom Identity), her hangi özel bir kimlik bilgisini gerçeklemek isteyen sınıflar için gerekli özellikleri ve arayüzü tanımlar.Bütün kimlik bilgisi sınıflarının gerçeklemeleri IIdentity arayüzünü desteklemek zorundadırlar. Bu arayüzün üç temel özelliği vardır: AuthenticationType, kullanıcının kimlik denetimi için hangi yöntemin kullanıldığını gösterir. IsAuthenticated, kullanıcının kimlik denetiminden geçip geçmediğini gösterir. Name, Kimlik bilgisinin ait olduğu kullanıcının adını metin olarak ifade eder.Microsoft .NET Çerçevesinde, WindowsIdentity sınıfı IIdentity, ISerializable, IDeserializationCallback arayüzlerini destekleyen serileştiribilir bir sınıftır. Bu sınıfın erişilebilir özellikleri şunlardır: AuthenticationType, kullanıcının kimlik denetimi için hangi yöntemin kullanıldığını gösterir. IsAnonymous, kullanıcının windows işletim sisteminde isimsiz anonim bir windows kullanıcısı olarak tanımlanıp tanımlanmadığını gösterir. IsAuthenticated, kullanıcının windows işletim sisteminin kimlik denetiminden geçip geçmediğini gösterir. IsGuest, kullanıcının windows işletim sisteminde misafir bir windows kullanıcısı olarak tanımlanıp tanımlanmadığını gösterir. IsSystem, kullanıcının windows işletim sisteminde sisteme ait bir kullanıcı olarak tanımlanıp tanımlanmadığını gösterir. Name, Windows işletim sistemine giriş ismini gösterir. Token, o kullanıcıyla ilişkilendirilmiş sistem sembolüne bir referans gösterir.Bu sınıfın erişilebilir metotları ise şu şekilde tanımlanmıştır: Equals, iki nesnenin birbirine eşit olup olmadığını test eder. GetAnonymous, isimsiz anonim bir windows kullanıcısının kimliğini ifade eden bir WindowsIdentity nesnesi sağlar. GetCurrent, Windows üzerinde şu an çalışan kullanıcının kimliğini ifade eden bir WindowsIdentity nesnesi sağlar. GetHashCode, bellekteki o nesneye özgü bir hash kodu oluşturur. GetType, bu nesnenin tipini verir. Impersonate, o an çalışan Windows kullanıcısının başka bir kullanıcıymış gibi davranmasını sağlar. Bu, Windows işletim sisteminde çalıştırabilir nesnenin üzerine sağa tıklayıp “Run as..” yaptığımız işi kod ile yapmamızı sağlar. ToString, şu an ki nesneyi ifade eden bir metin oluşturur.C#using System; using System.Security.Principal; namespace RoleBasedSecurity { class Sample { static void Main(string[] args) { WindowsIdentity i = WindowsIdentity.GetCurrent(); Console.WriteLine( i.AuthenticationType ); Console.WriteLine( i.IsAnonymous); Console.WriteLine( i.IsAuthenticated ); Console.WriteLine( i.IsGuest ); Console.WriteLine( i.IsSystem); Console.WriteLine( i.Name); Console.Read(); } } }VB.NETImports System Imports System.Security.Principal Module Sample Sub Main() Dim i As WindowsIdentity = WindowsIdentity.GetCurrent() Console.WriteLine(i.AuthenticationType) Console.WriteLine(i.IsAnonymous) Console.WriteLine(i.IsAuthenticated) Console.WriteLine(i.IsGuest) Console.WriteLine(i.IsSystem) Console.WriteLine(i.Name) Console.Read() End Sub End ModuleC++.NET#include "stdafx.h" #using using namespace System; using namespace System::Security::Principal; int _tmain() { WindowsIdentity __gc* i = WindowsIdentity::GetCurrent(); Console::WriteLine(i->AuthenticationType ); Console::WriteLine(i->IsAnonymous ); Console::WriteLine(i->IsAuthenticated ); Console::WriteLine(i->IsGuest ); Console::WriteLine(i->IsSystem ); Console::WriteLine(i->Name ); Console::Read(); return 0; }J#package RoleBasedSecurity; import System.*; import System.Security.Principal.*; public class Sample { public Sample() { } /** @attribute System.STAThread() */ public static void main(String[] args) { WindowsIdentity i = WindowsIdentity.GetCurrent(); Console.WriteLine( i.get_AuthenticationType() ); Console.WriteLine( i.get_IsAnonymous()); Console.WriteLine( i.get_IsAuthenticated() ); Console.WriteLine( i.get_IsGuest() ); Console.WriteLine( i.get_IsSystem()); Console.WriteLine( i.get_Name() ); Console.Read(); } }Bu kodun çalıştırılması sonucu benim bilgisayarımdaki sonuç şu şekilde olmaktadır;NTLM False True False False COMPUTERYunus Emre ALPÖZENMicrosoft .NET Çerçevesinde, GenericIdentity sınıfı IIdenitity sınıfını gerçekleyen serileştirilebilir bir sınıftır. Bu sınıfın erişilebilir özellikleri şunlardır: AuthenticationType, kullanıcının kimlik denetimi için hangi yöntemin kullanıldığını gösterir. IsAuthenticated, kullanıcının kimlik denetiminden geçip geçmediğini gösterir, kullanıcı adı verilerek bu sınıftan oluşturulan her nesne için kimlik denetimi yapılmış kabul edilir. Name, kimlik denetiminden geçen kullanıcının ismini gösterir.Bu sınıfın erişilebilir metotları ise şu şekilde tanımlanmıştır: Equals, iki nesnenin birbirine eşit olup olmadığını test eder. GetHashCode, bellekteki o nesneye özgü bir hash kodu oluşturur. GetType, bu nesnenin tipini verir. ToString, şu an ki nesneyi ifade eden bir metin oluşturur.C#using System; using System.Security.Principal; namespace RoleBasedSecurity { class Sample { static void Main(string[] args) { GenericIdentity iNonAuthenticated = new GenericIdentity(""); Console.WriteLine( "iNonAuthenticated.AuthenticationType: {0}", iNonAuthenticated.AuthenticationType ); Console.WriteLine( "iNonAuthenticated.IsAuthenticated : {0}", iNonAuthenticated.IsAuthenticated ); Console.WriteLine( "iNonAuthenticated.Name: {0}", iNonAuthenticated.Name ); Console.WriteLine(("").PadRight(45,"-")); GenericIdentity iAuthenticated = new GenericIdentity("yemre"); Console.WriteLine( "iAuthenticated.AuthenticationType: {0}", iAuthenticated.AuthenticationType); Console.WriteLine( "iAuthenticated.IsAuthenticated : {0}", iAuthenticated.IsAuthenticated); Console.WriteLine( "iAuthenticated.Name: {0}", iAuthenticated.Name); Console.Read(); } } }VB.NETImports System Imports System.Security.Principal Module Sample Sub Main() Dim iNonAuthenticated As New GenericIdentity("") Console.WriteLine("iNonAuthenticated.AuthenticationType: {0}", _ iNonAuthenticated.AuthenticationType) Console.WriteLine("iNonAuthenticated.IsAuthenticated : {0}", _ iNonAuthenticated.IsAuthenticated) Console.WriteLine("iNonAuthenticated.Name: {0}", _ iNonAuthenticated.Name) Console.WriteLine(("").PadRight(45, "-")) Dim iAuthenticated As New GenericIdentity("yemre") Console.WriteLine("iAuthenticated.AuthenticationType: {0}", _ iAuthenticated.AuthenticationType) Console.WriteLine("iAuthenticated.IsAuthenticated : {0}", _ iAuthenticated.IsAuthenticated) Console.WriteLine("iAuthenticated.Name: {0}", _ iAuthenticated.Name) Console.Read() End Sub End ModuleC++.NET#include "stdafx.h" #using >mscorlib.dll< using namespace System; using namespace System::Security::Principal; int _tmain() { GenericIdentity __gc* iNonAuthenticated = __gc new GenericIdentity(""); Console::WriteLine("iNonAuthenticated.AuthenticationType: {0}", iNonAuthenticated-

Döküman Arama

Başlık :

Kapat