سلام.
براي اينكه بتونم يه log in به صورت دستي بنويسم چيكار بايد بكنم؟
نميخوام از ASP.NET Membership Provider استفاده كنم.ميخوام يه DB درست كنم كه يه Table به اسم user داره و از اون table بتونم log in كنم.
مرسي.
سلام.
براي اينكه بتونم يه log in به صورت دستي بنويسم چيكار بايد بكنم؟
نميخوام از ASP.NET Membership Provider استفاده كنم.ميخوام يه DB درست كنم كه يه Table به اسم user داره و از اون table بتونم log in كنم.
مرسي.
پیشنهاد میکنم این کار رو نکنید.سلام.
براي اينكه بتونم يه log in به صورت دستي بنويسم چيكار بايد بكنم؟
نميخوام از ASP.NET Membership Provider استفاده كنم.ميخوام يه DB درست كنم كه يه Table به اسم user داره و از اون table بتونم log in كنم.
مرسي.
یعنی تا تسلط کافی رو سیستم تشخیص هویت پیدا نکردید خودتون ننویسید.
اما اگه هدف یادگیریتون هست نه استفاده در پروژه :
مقاله زیر رو بخونید
سیستم ورود و تشخیص هویت ساده
نگو به سرنوشت میبازی - تو بخوای فردا رو میسازی
منظورتون از اینکه نمیخواهید از بعضی فیلد هاش استفاده کنید متوجه نشدم. خوب استفاده نکنید.اما modify كردن اونها كار سختيه.به عنوان مثال سايد بخوام چندتا از فيلدها رو نداشته باشم يا چند تا فيلد بهش اضافه كنم. آيا باز هم ميشه از اون استفاده كرد؟
اما برای توسعه:
چرا که نشه؟ خیلی هم راحت میشه این کار رو کرد.
شما میخواهید چه کاری بکنید بگید تا اون رو بررسی کنیم.
بیشترین سوالی که تو فروم شنیدم در مورد Profile ممبرشیپ بوده که خیلی ها بر این باورند که به خاطر ذخیره ی مقادیر به صورت سریال و بعد برای نمایش اون پردازش اضافی رو خواهیم داشت.
که فقط نیاز به ساختن یک جدول یگه به نام Profile هست.
نگو به سرنوشت میبازی - تو بخوای فردا رو میسازی
کد لوگین
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strCon As String = System.Web.Configuration.WebConfigurationManager.C onnectionStrings("KarzarghanConnectionString").Con nectionString()
Dim SQL As String = "SELECT COUNT(*) AS cont FROM pass WHERE (stu = @user) AND (pass = @pas)"
Dim con As New Data.SqlClient.SqlConnection(strCon)
Dim cmd As New Data.SqlClient.SqlCommand(SQL, con)
Dim result As Integer
cmd.Parameters.AddWithValue("user", txtUserName.Text.ToLower)
cmd.Parameters.AddWithValue("pas", txtPassword.Text)
Using con
con.Open()
result = cmd.ExecuteScalar()
End Using
If result > 0 Then
' FormsAuthentication.SetAuthCookie(txtUserName.Text , True)
If txtUserName.Text = "admin" Then
Session("Role") = "karshenas"
Else
Session("Role") = "User"
End If
FormsAuthentication.RedirectFromLoginPage(txtUserN ame.Text, True)
Else
lblError.Text = "نام كاربري يا رمز عبور را اشتباه وارد كرده ايد"
End If
End Sub
ببینید اون معماری برای عموم طراحی شده.
حالا اگه شما میخواهید اون رو برای خودتون اختصاصی کنید.
به عنوان مثال نمیدونم چقدر در Dot Net Nuke آشنایی دارید. این پورتال هسته مرکزی امنیت خودش رو بر همین ممبرشیپ دات نت گذاشته و اون رو توسعه داده.
نگو به سرنوشت میبازی - تو بخوای فردا رو میسازی
ممنون از راهنماییتون.
بالخره تونست این کار رو بکنم.
اما یه مشکل دارم،وقتی که تو page جاری log in میکنم همنه چی به نظر خوب میرسه ،اما وقتی یه لینک دیه رو میزنم و باز میکنم log in نیست.
این هم کد log in button من.
protected void btn_login_Click(object sender, EventArgs e)}
{
if (Page.IsValid)
{
FormsAuthentication.Initialize();
FormsAuthenticationTicket ft = new FormsAuthenticationTicket(1, txt_user.Text, DateTime.Now, DateTime.Now.AddMinutes(30), false, "", FormsAuthentication.FormsCookiePath);
Response.Cookies.Add(new HttpCookie (FormsAuthentication .FormsCookieName,FormsAuthentication.Encrypt(ft))) ;
Session["uid"] = txt_user.Text;
Response.Redirect("homepage.aspx");
}