PDA

View Full Version : چگونگی پیاد سازی دکمه یادآوری گلمه عبور



rezaei manesh
یک شنبه 08 بهمن 1385, 12:01 عصر
سلام من در صفحه ورود یک لینک به اسم یادآوری کلمه عبور دارم
حالا می خوام بدونم برای یاد آوری کلمه عبور باید کلمه عبور رو کجا ذخیره کنم تا روی اون سیستم بتونم از این مزیت استفاده کنم درست مانند قسمت ورود برای همین سایت که می شه با زدن تیک نام کاربری و کلمه عبور رو به عنوان پیش فرض قرار داد؟

zerobit-ltd
یک شنبه 08 بهمن 1385, 12:08 عصر
باید از cooki ها استفاده کنی. برای بالا بردن امنیت هم می تونی cooki ها رو کد کنی.
به این صورت که وقتی صفحه می خواد load شه، اول چک کنی که cooki وجود داره یا نه. در صورت وجود داشتنش، مقادیرش رو توی textbox های مربوطه نمایش بده.

rezaei manesh
یک شنبه 08 بهمن 1385, 12:25 عصر
خوب من با کوکی ها کار نکردم اگه یه مثال دمه دست دارید بزارید ممنئن می شم وگرنه از تو msdn پیدا می کنم
در ضمن برای کوکی ها باید زمان هم بزارم یا نه (روش اوصولی و استاندارد برای اینکار چیه)

zerobit-ltd
یک شنبه 08 بهمن 1385, 13:36 عصر
می تونی زمان expire بذاری. اگر هم نذاری، بلافاصله پس از خروج، کوکی از بین می ره.


//Write Cookies
HttpCookie c = new HttpCookie("Zerobit-ltd");
c.Expires = DateTime.Now.AddMinutes(10);
c.Values.Add("Username","Zerobit");
c.Values.Add("Password","2704");
Response.Cookies.Add(c);

//Read Cookies
HttpCookie c = Request.Cookies.Get("Zerobit-ltd");
string Username , Password;
Username = c.Values.Get("Username");
Password = c.Values.Get("Password");

rezaei manesh
یک شنبه 08 بهمن 1385, 13:50 عصر
ممنون امشب روش کار می کنم اگه مشکلی داشتم مزاحمتون می شم
بازم متشکرم

zerobit-ltd
یک شنبه 08 بهمن 1385, 15:45 عصر
موفق باشی.

nazaninam
سه شنبه 10 بهمن 1385, 20:30 عصر
کار بار کوکی ( cookie ) ها

Cookie چیست ؟

در حقیقت کوکی ها فایل های متنی کوچکی هستند که در کامپیوتر سرویس گیرنده ( client ( ذخیره میشوند.

بسیاری از سایت های معروف مثل یاهو از این سیستم برای نگهداری برخی از اطلاعات کاربر استفاده می کنند .

کوکی های قابلیت به رمز درآمدن را دارند و برای همین می توان امنیت آنها را تظمین کرد.



روش استفاده از کوکی ها :



برای استفاده از کوکی ها به کلاس HttpCookie نیاز داریم ، این کلاس در فضا نام system.web وجود دارد که به طور پیش فرض به صفحه کد نویسی ما اضافه شده است.

برای ساخت یک شی از این کلاس به شکل زیر عمل می کنیم :



Dim mycookie As New HttpCookie("login")



فرض کنید در حال ایجاد یک سیستم ورود و تشخیص هویت هستیم . می خواهیم اطلاعات کاربر رو پس از اینکه هویتش تایید شد داخل یک کوکی نگهداری کنیم . بدین منظور از کد فوق برای ساخت یک کوکی استفاده می کنیم.

برای مقدار دهی به این کوکی به روش زیر عمل می کنیم :



mycookie.Value= username.Text



کد فوق مقدار کوکی ساخته شده را برابر مقدار نوشته شده در تکس باکس username قرار می دهد.

در صورتی که اطلاعات ما بیش از یک مقدار باشد می توانید به شکل زیر عمل کنید :



mycookie.Values("username") = Uid.Text

mycookie.Values("password") = password.Text



در این روش به جای استفاده از متد Value از Values استفاده می کنیم که نام متغیر به صورت پارامتر به آن پاس می شود ( مانند username , password ) و بوسیله عملگر ‘=’ مقدار دهی می گردد.

پس الان ما یک کوکی به نام login ساختیم که دارای دو متغیر username , password هست که این دو متغیر مقدار دهی شدند.

به صورت پیش فرض زمان انقضای کوکی ها زمانی است که مرورگر شما بسته شود ، اما می توان برای کوکی های زمان انتضا تعریف کرد .

برای مثال فرض کنید در همین سیستم لوگین یک چک باکس قرار دادید که اگر کاربر آن را تیک زد دفعه بعد او را به خاطر پسپارد و دیگر از اون نام کاربری و پسوورد نخواهد.

برای این منظور در صورتی که کاربری چک باکس مربوطه (به نام rem)را تیک زده بود زمان انتقضای کوکی را به سال آینده موکول می کنیم :



If rem.Checked = True Then

mycookie.Expires = Date.Now.AddYears(1)

End If



خوب پس از اعمال فوق کافیست کوکی که ساخته شده به را به مجموعه کوکی های سرویس گیرنده بیافزایید بدین منظور داریم :



Response.Cookies.Add(mycookie)



برای خواندن کوکی میتوانید از متد Request استفاده کنید .

برای مثال در صفحه دیگری می خواهید چک کنید اگر کوکی مربوطه در کامپیوتر کاربر وجود دارد دیگر از اون نام کاربری و رمز نخواهید و مستقیما به او خوش آمد گویی کنید :



If Request.Cookies("login") Is Nothing Then



Response.Redirect("login.aspx")



Else



Label1.Text ="welcome "+Request.Cookies("login").Values("username")



End If



در قطعه کد فوق که در ساب روتین مربوط به رخداد لود صفحه نوشته شده است در صورت موجود بودن کوکی Login به کاربر خوش آمد می گوییم در غیر این صورت کابر را برای تشخصی هویت به صفحه login هدایت می نماییم.



برای حذف کوکی میتوان به صورت زیر عمل کرد :

Response.Cookies.Remove("login")



کنترل قلمرو کوکی ها :



به صورت پیش فرض تمام کوکی های مربوط به یک سایت همه باهم یکجا در کامپیوتر سرویس گیرنده ذخیره می شوند و با هر درخواست از آن سایت تمامی کوکی ها به سرویس دهنده ( server ) ارسال می گردند. به عبارت دیگر تمام صفحات در یک سایت تمام کوکی های مربوط به آن سایت را دریافت می کنند ، در صورتی که تعداد کوکی های یک سایت زیاد باشد این امر باعث کند شدن سایت و فشار به سرور می گردد.

بدین منظور قلمرو کوکی ها را به دو شکل زیر محدود می کنیم :

1. محدود کردن قلمرو کوکی ها توسط پوشه های داخل سرور) Folders ).
2. محدود کردن کوکی ها توسط زیر دامنه ها ( subdomains )



برای محدود کردن کوکی ها به پوشه های داخل سرور به صورت زیر عمل می کنیم :



mycookie.Path("/users")



کد فوق کوکی login را به پوشه users داخل سایت شما محدود می کند در صورت که هر درخواستی مبنی بر دریافت کوکی ها از سایر پوشه ها داده شود کوکی Login به همراه آن ها نخواهد بود .

به عنوان مثال :

در صورتی کوکی های صفحه http://www.yousite.com/users/default.aspx در خواست گردد کوکی login دریافت خواهد شد و در صورتی که کوکی های صفحه http://www.yoursite.com/manage/default.aspx در خواست شود کوکی Login وجود نخواهد داشت.



این عمل یعنی محدود کردن قلمرو کوکی ها توسط زیر دامنه ها نیز ممکن است :



mycookie.Domain = "users.how2learnasp.net"

rezaei manesh
چهارشنبه 11 بهمن 1385, 09:12 صبح
با تشکر از شما نازنین
از مطالب شما استفاده کردم مخصوصا قسمت محدود کردن کوکی ها
من صفحه لاگین رو درست کردم اما یه مشکله هم دارم اونم اینه که وقتی نوع textboxرو برابر با password قرار میدم دیگه نمی تونم با کد نویسی مقداری رو درونش بریزم
من می خوام برای تغییر یا بعضی قسمت های دیگه کلمه عبور رو با کد نویسی درون تکست مربوطه قرار بدم مثل یاهو مسنجر اما نمی شه میزارم اما نشون نمیده ؟!