PDA

View Full Version : سوال: مشكل در عوض كردن پسورد برنامه



debugger
جمعه 14 فروردین 1388, 19:59 عصر
با سلام خدمت دوستان عزيز

من يه برنامه كوچيك نوشتم كه ميخوام وقتي كابر برنامه را اجرا مي كنه يه كادر بياد ازش درخواست پسورد كنه و اگر پسورد را درست وارد كرد فرم اصلي برنامه بهش نشون داده بشه

خب تا اينجا كه مشكلي ندارم

ولي داخل برنامه در قسمت setting يه change password گذاشتم . كه كاربر پسورد را عوض كنه . و دفعه بعد با پسوردي كه خودش براي خودش ساخته وارد برنامه بشه

http://y4shar.parsaspace.com/helppic.jpg
يعني دفعه بعد وقتي برنامه را اجرا كرد . اون پسوردي را بده كه تو قسمت change password براي خودش ساخته

هيچ ديتا بيسي هم ندارم كه پسورد را توش بنويسم و از اونجا بخونم و مقايسه كنم .

من با وي بي اين كار را با رجيستري انجام ميدادم . ولي اينجا نمي دونم چطور بايد اين كار را كرد ؟

rnm123
جمعه 14 فروردین 1388, 23:44 عصر
دوست عزیز همین کار را میتونی تو سی شارپ هم انجام بدی . یادمه یکی از دوستان همین چند وقت پیش توی همیت تالار در مورد نحوه ذخیره و خواندن اطلاعات در رجیستری توضیحاتی داده بودند . میتونی با یک سرچ ساده اونو پیدا کنی اما یک روش دیگری هم هست و اون اینه که خیلی راحت با استفاده از توابع hash کمه رمز را رمزنگاری کرده و انراا در یک فایل متنی ذخیره کنی . البته اون رمز قابل استفاده مستقیم خارج از برنامه نخواهد بود چون رمز نگاری شده است و خود شما هم باید موقع خواندن آن از فایل آنرا دیکد کنی البته ثبت در رجیستری ارجحیت تمام دادرد.
میتونی به آدرس زیر مراجعه ای داشته باشی :

http://www.barnamenevis.org/forum/showthread.php?p=353499

http://barnamenevis.org/forum/showthread.php?t=150416

http://barnamenevis.org/forum/archive/index.php/t-101471.html

http://www.barnamenevis.org/forum/showthread.php?t=140244

seven7777777
شنبه 15 فروردین 1388, 06:34 صبح
دوست عزیز اولا عنوان نا مناسب انتخاب کردی . به قوانین تالار دقت کن .
دوما از کد زیر می تونی برای دستیابی به رجیستری ، افزودن کلید ، حذف کلید و یافتن استفاده کنی :


RegistryKey reg = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\RunOnce", true);
===============================
Registry.CurrentUser.CreateSubKey(@"Software\Installing");
===============================
reg.SetValue("Inspath", Application.StartupPath + @"\Setup ZCM.exe");

اولین کد مسیری در رجیستری و در زیر پوشه Current user باز می کند .
دومین کد یک زیر کلید را در مسیر داده شده می سازد .
سومین کد در مسیر باز شده در اولین کد یک مقدار یا Value را ست می کند .
راستی Microsoft.Win32 فراموش نشه !!!

debugger
شنبه 15 فروردین 1388, 12:30 عصر
دوست عزیز همین کار را میتونی تو سی شارپ هم انجام بدی . یادمه یکی از دوستان همین چند وقت پیش توی همیت تالار در مورد نحوه ذخیره و خواندن اطلاعات در رجیستری توضیحاتی داده بودند . میتونی با یک سرچ ساده اونو پیدا کنی اما یک روش دیگری هم هست و اون اینه که خیلی راحت با استفاده از توابع hash کمه رمز را رمزنگاری کرده و انراا در یک فایل متنی ذخیره کنی . البته اون رمز قابل استفاده مستقیم خارج از برنامه نخواهد بود چون رمز نگاری شده است و خود شما هم باید موقع خواندن آن از فایل آنرا دیکد کنی البته ثبت در رجیستری ارجحیت تمام دادرد.
میتونی به آدرس زیر مراجعه ای داشته باشی :

http://www.barnamenevis.org/forum/showthread.php?p=353499

http://barnamenevis.org/forum/showthread.php?t=150416

http://barnamenevis.org/forum/archive/index.php/t-101471.html

http://www.barnamenevis.org/forum/showthread.php?t=140244

شما كل انجمن را سرچ كردي . كد هاي وي بي و دلفي به درد نمي خورن

من كد سي شارپ لازم دارم . بازم ممنونم

debugger
شنبه 15 فروردین 1388, 12:34 عصر
دوست عزیز اولا عنوان نا مناسب انتخاب کردی . به قوانین تالار دقت کن .
دوما از کد زیر می تونی برای دستیابی به رجیستری ، افزودن کلید ، حذف کلید و یافتن استفاده کنی :


RegistryKey reg = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\RunOnce", true);
===============================
Registry.CurrentUser.CreateSubKey(@"Software\Installing");
===============================
reg.SetValue("Inspath", Application.StartupPath + @"\Setup ZCM.exe");

اولین کد مسیری در رجیستری و در زیر پوشه Current user باز می کند .
دومین کد یک زیر کلید را در مسیر داده شده می سازد .
سومین کد در مسیر باز شده در اولین کد یک مقدار یا Value را ست می کند .
راستی Microsoft.Win32 فراموش نشه !!!

كد شما هم برنامه Setup ZCM.exe را در startup قرار ميدهد. من ميخوام يه عددي را در يه جايي از رجيستري بنويسم و بعد چكش كنم . نمي خوام كه برنامه را بزارم تو استارت اپ

چطوري بايد مقدار setvalue را مقايسه كرد ؟

kiosksoft
شنبه 15 فروردین 1388, 16:17 عصر
دوست عزیز این هم کد:




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
namespace ChReg
{
publicpartialclassForm1 : Form
{
public Form1()
{
InitializeComponent();
}
privatevoid AddString_Click(object sender, EventArgs e)
{
RegistryKey k = Registry.CurrentUser.CreateSubKey(@"Test");
k.OpenSubKey("Test");
k.SetValue(txtStringName.Text.Trim(), txtStringValue.Text.Trim());
k.Close();
}
privatevoid EditString_Click(object sender, EventArgs e)
{
RegistryKey k = Registry.CurrentUser.CreateSubKey(@"Test");
k.OpenSubKey("Test");
k.SetValue(txtStringName.Text.Trim(), txtStringValue.Text.Trim());
k.Close();
}
privatevoid ReadString_Click(object sender, EventArgs e)
{
RegistryKey k = Registry.CurrentUser.CreateSubKey(@"Test");
k.OpenSubKey("Test");
MessageBox.Show(k.GetValue(txtStringName.Text).ToS tring());
k.Close();
}
}
}




فقط یادتون باشه این مقادیر حتما باید کد بشوند در غیر اینصورت اصلا کار جالبی نخواهد شد.

debugger
شنبه 15 فروردین 1388, 19:02 عصر
مشكل حل شد با تشكر از همه دوستان