PDA

View Full Version : ايجاد username & password ويندوز



saeid.yavary
دوشنبه 24 تیر 1387, 13:02 عصر
سلام
من يك برنامه اكانتيتگ دارم كه يك username & password مي گيره
مي خوام وقتي كاربر كليد اضافه رو زد اين username & password به username & password هاي ويندوز اضافه بشه
دوستان راهنمايي كنن بايد از چي استفاده كنم.

sinpin
دوشنبه 24 تیر 1387, 13:50 عصر
از امكان انجام اينكار بصورت مستقيم (كلاسهاي دات نت فريمورك) اطلاعي ندارم (از گوگل بپرسيد بسادگي پيدا ميكنيد) اما از طريق دستورات خط فرمان (cmd) نيز ميتوانيد. اين دستور را در خط فرمان اجرا كنيد:

net user /?از اين طريق ميتونيد يك كاربر رو ويرايش، حذف، اضافه و ... كنيد. اين دستور را ميتوانيد از طريق process در برنامه ي خود اجرا كنيد.

saeid.yavary
سه شنبه 25 تیر 1387, 01:03 صبح
دستور NET USER رو میدونم مثلا برای ایجاد یک کاربر جدید
NET USER SAEID 123 /ADD
این فرمان برامون یک کاربر با نام سعید با پسوورد 123 ایجاد می کنه حالا چجوری اینو تو برنامه استفاده کنم.


اين دستور را ميتوانيد از طريق process در برنامه ي خود اجرا كنيد.
میشه بیشتر توضیح بدین ممنون میشم.

Zaparo
سه شنبه 25 تیر 1387, 02:15 صبح
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.DirectoryServices.AccountManagement;
using System.DirectoryServices;
using System.Diagnostics;

namespace ConsoleApplication11
{
class Program
{
static void Main(string[] args)
{
//.net 3.5
PrincipalContext pc = new PrincipalContext(ContextType.Machine);
System.DirectoryServices.AccountManagement.UserPri ncipal u = new UserPrincipal(pc);
u.SetPassword("123");
u.Name = "zaparo";
u.Description = "description";
u.UserCannotChangePassword = true;
u.PasswordNeverExpires = true;
u.Save();

DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
DirectoryEntry NewUser = AD.Children.Add("Test", "user");
NewUser.Invoke("SetPassword", new object[] { "pswd" });
NewUser.Invoke("put", new object[] { "Description" , "description" });
NewUser.CommitChanges();

if (!Directory.Exists(homedir))
Directory.CreateDirectory(homedir);

Process MyProc = new Process();
MyProc.StartInfo.WorkingDirectory = @"C:\WINNT\SYSTEM32";
MyProc.StartInfo.FileName = "net.exe";
MyProc.StartInfo.UseShellExecute = false;
MyProc.StartInfo.RedirectStandardError = true;
MyProc.StartInfo.RedirectStandardInput = true;
MyProc.StartInfo.RedirectStandardOutput = true;
MyProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

MyProc.StartInfo.Arguments = @" user " + username + @" " + password + @" /ADD /ACTIVE:YES " +
@"/EXPIRES:NEVER /FULLNAME:" + username + @" /HOMEDIR:""" +
homedir + @""" /PASSWORDCHG:NO /PASSWORDREQ:YES";

MyProc.Start();
MyProc.WaitForExit();
MyProc.Close();

}
}
}

rezaiy.ali
سه شنبه 25 تیر 1387, 08:43 صبح
با سلام



string yourUserName = "UserName";
DirectoryEntry yourComputer = new DirectoryEntry("WinNT://" + Environment.MachineName);
try
{
DirectoryEntry yourUser = yourComputer.Children.Find(yourUserName, "User");
}
catch
{
DirectoryEntry yourUser = yourComputer.Children.Add(yourUserName, "User");
yourUser.CommitChanges();
}

saeid.yavary
چهارشنبه 26 تیر 1387, 16:09 عصر
از دوستان متشكرم ولي اين كدهايي كه دادين

using System.Linq;
using System.DirectoryServices.AccountManagement;
using System.DirectoryServices;
رو نمي شناسه

Sajjad.Aghapour
چهارشنبه 26 تیر 1387, 19:13 عصر
دوست عزیز این کدها واسه 2008 هستش.

saeid.yavary
دوشنبه 14 مرداد 1387, 10:01 صبح
سلام از دوستان متشکرم
حالا می خوام لیست username & password های موجود در ویندوز رو بدست بیارم و در بانک ذخیره کنم باید چیکار کنم

mohammad272005
دوشنبه 14 مرداد 1387, 21:25 عصر
از دوستان متشكرم ولي اين كدهايي كه دادين
کد:
using System.Linq;using System.DirectoryServices.AccountManagement;using System.DirectoryServices;
رو نمي شناسه
LINQ رو بسادگی فقط حذف کن. چون فعلا لازمش نداری. ولی با اضافه کردن referenceی از فایل System.DirectoryServices.dll مشکلت واسه بعدیها هم حل میشه.
موفق باشید.