PDA

View Full Version : سوال درباره کار با رجیستری برای لاگین شدن



ghamgin
پنج شنبه 01 تیر 1391, 09:03 صبح
سلام
دوستان من یک برنامه دارم که بعد از اجرا یک فرم اصلی باز میشه که همه چیز داخلش غیرفعال هست با کلیک روی کلید لاگین که تنها گزینه فعال در فرم هست و وارد کردن یوزر و پسورد که از بانک خونده میشه کاربر لاگین میکنه و وارد میشه
حالا میخوام طوری باشه که کاربر فقط اولین بار که برنامه رو اجرا میکنه لاگین کنه
و بارهای بعد دیگه فرم از ابتدا همه گزینه هاش فعال باشه( و اگه خواست با کاربر دیگه لاگن کنه خودش دوباره کلید لاگین رو بزنه و بارهای بعد با یوزر و پس جدید وارد شده باشه)
ایا با ریجتری میتونم این کارو بکنم؟؟
ممنون میشم کمکم کنید

mohammadriano
پنج شنبه 01 تیر 1391, 10:31 صبح
خب حتماً برنامه شما بانک اطلاعاتی داره
یک Table اظافه کن و فقط یک مقدار 0 توی اولین رکورد قرار بده
خب حالا می تونی شرط بزاری که
البته من برنامه نویسی در #C رو زیاد نمی دونم ولی شما به راحتی می تونی کدها رو به #C برگردونی
اگه منظورت یک پسورد دائم برای کل برنامه هست

Private Sub Command_Click()
If text1.Text = "my password" Then
Data.Recordset.Fields("chek").Value = 1
Else
Unload Me
End If
End Sub
Private Sub Form_Load()
If Data.Recordset.Fields("chek").Value = 1 Then
Form1.Show
Unload Me
End If
End Sub

البته شاید نوشتن کد VB6 در تالار #C کار درستی نباشه فقط خواستم کمک کوچکی کرده باشم

ghamgin
پنج شنبه 01 تیر 1391, 17:27 عصر
سلام
ممنون
نه یوزر و پسورد کل برنامه یکی نیست ممکنه کاربر با یوزر و پس جدید وارد بشه و بخواد از اون به بعد هم با همونها بدون
وارد کردن لاگین شه
خواهش میکنم کمک کنید
ممنون

behzadkhatari
جمعه 02 تیر 1391, 00:33 صبح
ازین دوتا تابع برای نوشتن و خوندن از رجیستری میتونی استفاده کنی. من برای پروژه خدوم اونا رو نوشتم برای لاگین
public static void SaveSetting(string Section, string Key, string Setting)
{

RegistryKey key1 = Application.UserAppDataRegistry.CreateSubKey(Secti on);

Application.UserAppDataRegistry.CreateSubKey(Secti on);
if (key1 == null)
{
return;
}
try
{
key1.SetValue(Key, Setting);
}
catch (Exception exception1)
{
return;
}
finally
{
key1.Close();
}

}
public static string GetSetting(string Section, string Key, string Default)
{
if (Default == null)
{
Default = "";
}
RegistryKey key1 = Application.UserAppDataRegistry.OpenSubKey(Section );
if (key1 != null)
{
object obj1 = key1.GetValue(Key, Default);
key1.Close();
if (obj1 != null)
{
if (!(obj1 is string))
{
return null;
}
return (string)obj1;
}
return null;
}
return Default;
}

programerinfonet
جمعه 02 تیر 1391, 13:22 عصر
از نوابع save setting و get setting استغاده کن

majidrezaei2007
جمعه 02 تیر 1391, 13:29 عصر
این گزینه که فعال و غیر فعال کردن که شما میگین ، به این صورت یوزر و پسوورد نیست . کد فعال سازی هست که با اون امکانات برنامه رو بهش میدین . اگه امنیت برنامتون مهم نیست (کرک شدنش) یک تیبل تو بانکتون بزارین و توی اون ذخیره کنید که کاربر لاگین شده یا نه . در غیر این صورت از رجیستری استفاده کنید . اونم به صورت رمز

ghamgin
جمعه 02 تیر 1391, 13:29 عصر
ازین دوتا تابع برای نوشتن و خوندن از رجیستری میتونی استفاده کنی. من برای پروژه خدوم اونا رو نوشتم برای لاگین
public static void SaveSetting(string Section, string Key, string Setting)
{

RegistryKey key1 = Application.UserAppDataRegistry.CreateSubKey(Secti on);

Application.UserAppDataRegistry.CreateSubKey(Secti on);
if (key1 == null)
{
return;
}
try
{
key1.SetValue(Key, Setting);
}
catch (Exception exception1)
{
return;
}
finally
{
key1.Close();
}

}
public static string GetSetting(string Section, string Key, string Default)
{
if (Default == null)
{
Default = "";
}
RegistryKey key1 = Application.UserAppDataRegistry.OpenSubKey(Section );
if (key1 != null)
{
object obj1 = key1.GetValue(Key, Default);
key1.Close();
if (obj1 != null)
{
if (!(obj1 is string))
{
return null;
}
return (string)obj1;
}
return null;
}
return Default;
}

سلام
ممنونم ازتون
میشه بگید این کد رو چطور و کجا استفاده کنم؟؟
ممنون

behzadkhatari
جمعه 02 تیر 1391, 22:12 عصر
برای خوندن از رجیستری
txtUser.Text = Functions.GetSetting("Your Section name", "UserName", "");
txtDB.Text = Functions.GetSetting("Your Section name", "DB", "");
txtServer.Text = Functions.GetSetting("Your Section name", "Server", "");

و برای نوشتن
unctions.SaveSetting("Your Section name", "Server", txtServer.Text);
Functions.SaveSetting("Your Section name", "DB", txtDB.Text);
Functions.SaveSetting("Your Section name", "UserName", txtUser.Text);

ghamgin
شنبه 03 تیر 1391, 10:54 صبح
برای خوندن از رجیستری
txtUser.Text = Functions.GetSetting("Your Section name", "UserName", "");
txtDB.Text = Functions.GetSetting("Your Section name", "DB", "");
txtServer.Text = Functions.GetSetting("Your Section name", "Server", "");

و برای نوشتن
unctions.SaveSetting("Your Section name", "Server", txtServer.Text);
Functions.SaveSetting("Your Section name", "DB", txtDB.Text);
Functions.SaveSetting("Your Section name", "UserName", txtUser.Text);

سلام
ممنونم ازتون
میشه بفرمایید
اینها یعنی چی؟؟
"Your Section name", "Server", ""
"Your Section name", "DB", ""
"Your Section name", "UserName", ""
فقط یوزرنیم و پسورد ثابت هست؟از بانک که نمیخونه؟
ممنونم

Y_Safaiee
شنبه 03 تیر 1391, 11:16 صبح
با سلام خدمت شما دوست گرامی

چرا از setting خود سی شارپ استفاده نمیکنی؟


خیلی راحت شما با استفاده از setting میتونین این روال رو ذخیره کنید مراحل زیر رو انجام بدین

1.در solution explorer و از زیر مجموعه Properties بر روی Settings.settings راست کلیم و Open رو انتخاب کنید تا کادر setting فرمتون باز شه

2.نام متغیرتون رو بنویسید و نوعش(رشته ای , اعشاری یا ... رو انتخاب کنید) در قسمت scope گزینه user رو انتخاب کنید.
3.این تب رو ببندید و به سوال ذخیره این تغییر بله بدید

حالا شما یه متغیر داخلی ساختید که همیشه همراه برنامتون برای نگهداری اطلاعات پایه مثه آدرس تصویر پس زمینه,آدرس دیتابیس و ... قابل استفادس.

و اینم کد نمونه برای شما



private void Form1_Load(object sender, EventArgs e)
{
string str = Properties.Settings.Default.myname;
if (str=="") MessageBox.Show("Error Setting is Null");
else textBox1.Text=str ;
}

private void button1_Click(object sender, EventArgs e)
{
Properties.Settings.Default.myname = "salam man younesam";
Properties.Settings.Default.Save();
}




myname نام متغییری هست که من در setting تعریف کردم.

موفق باشی
بایت بایت

behzadkhatari
یک شنبه 04 تیر 1391, 09:47 صبح
سلام
ممنونم ازتون
میشه بفرمایید
اینها یعنی چی؟؟
"Your Section name", "Server", ""
"Your Section name", "DB", ""
"Your Section name", "UserName", ""
فقط یوزرنیم و پسورد ثابت هست؟از بانک که نمیخونه؟
ممنونم

دوست عزیز هر مقدار رجیستری با یک نام کلید یا همون section name میتونه هر نامی باشه. مثلا اسم نرم افزارتون. به جای db و user name هم هر اسمی رو برای مقادیری که میخوان تو رجیستری ذخیره بشن میتونی انتخاب کنی. اینی که من نوشتم فقط یه مثال بود همه چی دست خود شماست
موفق باشید