PDA

View Full Version : چگونه میتوان در asp.net 2008 ورود به سایت ساخت؟



mialdf
جمعه 08 آبان 1388, 16:10 عصر
سلام دوستان
فرم ورود به سایتو چه جوری باید طراحی کنیم که فقط با عضویت در سایت کاربر بتونه صفحات سایتو ببینه
از دیتا بیس sql server 2008 و asp.net 2008 استفاده میکنم.
ممنون میشم اگه کسی بتونه کمکم کنه

A.S.Roma
جمعه 08 آبان 1388, 16:14 عصر
این کار خودش یک مبحثه ...
در مورد Membership یک سرچ کن مشکلی بود بپرس.

mialdf
جمعه 08 آبان 1388, 17:28 عصر
فقط یه login معمولی چطور که بیشتر سایتها ازش استفاده میکنن.
اونو کسی نداره؟

mialdf
جمعه 08 آبان 1388, 20:03 عصر
سلام دوستان
من از دیتابیس sal server 2008 استفاده میکنم و از asp.net 2008 با استفاده از vb

میخوام برای سایتم login درست کنم به طوری که بعد از لاگین کردن کاربر دسترسی به همه ی صفحهات سایت رو داشته باشه. فقط کد لاگین کردن رو میخوام البته کد های web.config من اینه

<?xml version="1.0"?>
<configuration>
<system.web>
<customErrors mode="Off"/>
<authentication mode="Forms">
<forms name="MyAppCookie" loginUrl="login.aspx" protection="All" timeout="30" defaultUrl="Default.aspx"></forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
<compilation debug="true"/></system.web>
</configuration>


حالا مشکل در برقراری ازتباط با sql server و جست و جو در دیتابیس رو دارم. ممنون میشم کسی بتونه کمکم کنه 2 روزه دارم سرچ میکنم ولی به نتیجه ای نمیرسم.

hashemi85sep
جمعه 08 آبان 1388, 22:47 عصر
سلام دوست عزیز
اساتید توصیه می کنن که از login خود vs استفاده بشه .
ولی برای این که کارت راه بیفته فکر کنم این به دردت بخوره:
پشت باتن ورود اینو بنویس :
if(textbox1.text=="نام کاربری" & textbox2.text=="کلمه عبور")
{
session["name"]=textbox1.text;
response.redirect("صفه مورد نظر");
}
else
{
lable1.text="نام کاربری یا کلمه عبور اشتباه است"
}
این دستور بالا برای یه کاربر نوشته شده... میتونی با یه حلقه این رو برای تمام کاربران بنویسی
این چند خط زیر رو هم توی page_load تمامی صفحاتی که میخوای بدون ثبت نام کسی دسترسی نداشته باشه بنویس
if(!ispostback)
{
if(session["name"]==null)
response.redirect("default.aspx")
}

Aidin
شنبه 09 آبان 1388, 08:49 صبح
کدی که برای Web.config نوشتی به علاوه ایک کدها برای صفحه Login.aspx :
برای تصدیق هویت کاربر :


_user = CheckUser(TB_User.Text);
if (_user != null)
{
if (_user.Password == TB_Pass.Text)
{
FormsAuthenticationTicket Authticket = new FormsAuthenticationTicket(
1,
TB_UserName.Text,
DateTime.Now,
DateTime.Now.AddMinutes(30),
true,
_user.Role,
FormsAuthentication.FormsCookiePath);

string hash = FormsAuthentication.Encrypt(Authticket);
HttpCookie Authcookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
if (Authticket.IsPersistent) Authcookie.Expires = Authticket.Expiration;
Response.Cookies.Add(Authcookie);
string returnUrl = Request.QueryString["u"];
if (returnUrl == null) returnUrl = "http://Website.com";
Response.Redirect(returnUrl);
}
}

تابع CheckUser برای پیدا کردن کاربر در SQL :


public User CheckUser(String Email)
{

DataClassesSQLDataContext DB = new DataClassesSQLDataContext();
var q = (from p in DB.Tbl_Users
where p.Email.Trim() == Email
select p).Single();
User _user = new User();
if (q != null)
{
_user.UserID = q.Email.Trim().ToString();
_user.Password = q.Pass.Trim().ToString();
_user.Role = q.Role.Trim().ToString;
}
return _user;
}

کلاس User مورد نیاز :


public class User
{
public User()
{
//
// TODO: Add constructor logic here
//
}
private string _userID;
private string _password;
private string _role;

public string UserID
{
get
{
return _userID;
}
set
{
_userID = value;
}
}
public string Password
{
get
{
return _password;
}
set
{
_password = value;
}
}
public string Role
{
get
{
return _role;
}
set
{
_role = value;
}
}

}


البته میتونی برای امنیت بیشتر پسورد هارو هم Hash بکنی و در SQL ذخیره کنی.