PDA

View Full Version : سوال: گرفتن پسورد به صورت ستاره از کاربر در محیط کنسول



Ahmad-Agha
یک شنبه 25 آبان 1393, 10:23 صبح
با سلام
من میخوام در محیط کنسول از کاربر پسورد دریافت کنم ؟ ؟ ؟
لطفا اگه میشه بگید که در محیط کنسول چه جوری میشه که کاربر هر کاراکتری که وارد میکنه خود کنسول اون کاراکتر رو به ستاره تبدیل کنه ؟
ممنون میشم !

rasoolf
یک شنبه 25 آبان 1393, 10:33 صبح
using System.Security;

public static SecureString getPassword()
{
SecureString pwd = new SecureString();
while (true)
{
ConsoleKeyInfo i = Console.ReadKey(true);
if (i.Key == ConsoleKey.Enter)
{
break;
}
else if (i.Key == ConsoleKey.Backspace)
{
if (pwd.Length > 0)
{
pwd.RemoveAt(pwd.Length - 1);
Console.Write("\b \b");
}
}
else
{
pwd.AppendChar(i.KeyChar);
Console.Write("*");
}
}
return pwd;
}

Ahmad-Agha
یک شنبه 25 آبان 1393, 10:51 صبح
سلام rasoolf
وقتی برنامه رو اجرا میکنم میاد با سریع قطع میشه ؟

Ahmad-Agha
یک شنبه 25 آبان 1393, 11:06 صبح
لطفا اگه میشه بیشتر راهنمایی کنید !!!:ناراحت:

rasoolf
یک شنبه 25 آبان 1393, 11:07 صبح
کل کدهای داخل برنامه را پاک کنید و این کد را داخل برنامه کپی کنید و اجرا کنید


using System;
using System.Security;


namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
getPassword();


}


public static SecureString getPassword()
{
SecureString pwd = new SecureString();
while (true)
{
ConsoleKeyInfo i = Console.ReadKey(true);
if (i.Key == ConsoleKey.Enter)
{
break;
}
else if (i.Key == ConsoleKey.Backspace)
{
if (pwd.Length > 0)
{
pwd.RemoveAt(pwd.Length - 1);
Console.Write("\b \b");
}
}
else
{
pwd.AppendChar(i.KeyChar);
Console.Write("*");
}
}
return pwd;
}
}
}

Ahmad-Agha
یک شنبه 25 آبان 1393, 11:11 صبح
ممنون:لبخندساده: