Alperdotnet's Web Log

Ağustos 20, 2008

AspDotNet ile Windows User oluşturma

Filed under: AspDotNet — alperdotnet @ 3:43 pm
Tags: , , , , , , , ,

Merhabalar;

Bir önce ki yazım da sizlere Windows IIS üzerinde nasıl website’si oluşturacağımızı anlatmıştım. Bu bölüm de ise sizlere nasıl wmi kullanarak Windows User’ı yaratabileceğinizi anlatacağım.

İlk önce yeni bir web sitesi oluşturuyoruz ve Website’mizin ismi Windowsusercreate olsun. Oluşturduğumuz websitemizin AppData klasörünün hemen üzerinde bulunan windowsusercreate bölümüne sağ tıklayarak Add Rerefence bölümüne tıklıyoruz. Buradan önceki yazımda da belirttiğim gibi windows sunucularda wmi gibi özel işlemler yapmanız için referans eklemeniz gerektiğini anlatmıştım ki bu bölümde de aynı referansları eklemek zorundayızdır. Bu bölümden System.DirectoryServices / System.DirectoryServices.AccountManagement / System.DirectoryServices.Protocols / System.Management / System.Management.Instrumentation referanslarını eklemeliyiz.

Şimdi referanslarımız ekledik ve sonrasında Default.aspx sayfamıza tıklayalım ve içinde ki <div> </div> kısımlarına bu kodları yerleştirelim.

<asp:Label ID=”Label1″ runat=”server” Text=”Kullanıcı Adı:”></asp:Label>
<asp:TextBox ID=”kullanici_adi” runat=”server”></asp:TextBox><br />
<asp:Label ID=”Label2″ runat=”server” Text=”Kullanıcı Şifre:”></asp:Label>
<asp:TextBox ID=”kullanici_sifre” runat=”server”></asp:TextBox><br />
<asp:Label ID=”Label3″ runat=”server” Text=”Kullanıcı Tanımı:”></asp:Label>
<asp:TextBox ID=”kullanici_tanimi” runat=”server”></asp:TextBox><br />
<asp:Label ID=”Label4″ runat=”server” Text=”Kullanıcı Grubu:”></asp:Label>
<asp:TextBox ID=”kullanici_grubu” runat=”server”></asp:TextBox><br />
<asp:Button ID=”Button1″ runat=”server” Text=”Yeni Windows User Oluştur” />

Bu yaptığımız arayüzümüzün codebehind bölümü olan default.aspx.vb kısmında eklediğimiz referanslarımızı import etmek zorundayızdır.

Imports System.Web
Imports System.Web.UI
Imports System.Web.HttpUtility
Imports System.IO
Imports System.IO.File
Imports System.DirectoryServices
Imports System.Management
Imports System.Management.ObjectGetOptions
Imports System.Text

Sırası ile Button1 objemizin Event’ı olan Click Event’ına şu kodu eklemeliyizdir.

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

AddUser(kullanici_adi.Text, kullanici_sifre.Text, kullanici_tanimi.text , kullanici_grubu.text)

End Sub

‘AddUser Function

Private Sub AddUser(ByVal login As String, ByVal password As String, ByVal fullName As String, ByVal memberss As String)

On Error Resume Next
Dim AD As DirectoryEntry = New DirectoryEntry(“WinNT://” + Environment.MachineName + “,computer”)
Dim NewUser As DirectoryEntry = AD.Children.Add(login, “user”)
NewUser.Invoke(“SetPassword”, New Object() {password})
NewUser.Invoke(“FullName”, New Object() {fullName})
NewUser.Invoke(“Put”, New Object() {“Description”, “Deneme”})
NewUser.Properties(“PasswordAge”).Add(0)
NewUser.Properties(“Userflags”).Add(&H40 Or &H10000)
NewUser.CommitChanges()
Dim grp As DirectoryEntry

grp = AD.Children.Find(memberss, “group”)
If grp.Name <> “” Then
grp.Invoke(“Add”, New Object() {NewUser.Path.ToString()})
End If
End Sub

Bu bölüme kadar websitemiz sorunsuz yaratılacaktır fakat ufak bir nokta vardır ki o da AspDotNet ‘in izin seviyesidir. Bu izin seviyesini ayarlamak için web.config dosyamızda değişiklik yapmak zorundayızdır ki bu o anda ki kullanacağınız olan Windows User ‘ın isim ve şifresini içermektedir.

Bunun için ekleyeceğiniz kod:

<identity impersonate=”true” userName=”alperdotnet” password=”password”/>

Bu kodumuz direk olarak <system.web> altına eklenmelidir. Eklendikten sonra bu yapmış olduğumuz AspDotNet website projemiz sorunsuz çalışacaktır.

Alper TAYFUN

Yorum Yapın »

Henüz yorum yapılmamış.

RSS feed for comments on this post. TrackBack URI

Yorum bırakın

WordPress.com'da Blog Oluşturun.