PDA

View Full Version : مشکل در لوگین کاربران معمولی و ادمین ها



mialdf
سه شنبه 04 آبان 1389, 17:55 عصر
سلام دوستان
وب سایتم طوری طراحی کردم که فرم های مربوط به admin رو در پوشه ای به نام
admin ذخیره کردم. هم بخش کابران دارای فرم login هست و هم بخش admin حال مشکلم اینجاست که وقتی کاربری login میکند میتواند به بخش admin هم دسترسی داشته باشه ممنون میشم اگه کمکی کنید
از studio 2008 و از sql server 2005 و با زبان vb.net مینویسم

majnun
سه شنبه 04 آبان 1389, 18:16 عصر
مگه برای هر کاربر role تعریف نکردین ؟

فقط کاربری میتونه بره به بخش مدیریت که role ادمین داشته باشه

mialdf
سه شنبه 04 آبان 1389, 18:42 عصر
مگه برای هر کاربر role تعریف نکردین ؟

فقط کاربری میتونه بره به بخش مدیریت که role ادمین داشته باشه

منظورتونو از رول نمیدونم چیه
فقط اینکه table ادمین جداست. یعنی همه ی ادمین ها در یک table دیگه ذخیره میشه اطلاعاتشون

mialdf
چهارشنبه 05 آبان 1389, 02:03 صبح
دوست عزیز من کاربران admin و معمولی رو با مقدار 2 و 1 مشخص کردم در هنگام لوگین هم نوع کابریشون در یک label مشخص میشه. حالا چطور میتونم دسترسی رو برای کاربران معمولی مشخص کنم که به پوشه ی admin دسترسی نداشته باشند؟

کدی که برای این کار نوشتم اینه


Protected Sub btnvorod_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnvorod.Click
Dim dr As SqlDataReader
Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\HighLnad.mdf;Integrated Security=True;User Instance=True")
Dim cmd As New SqlCommand("SELECT [UserName], [Password] ,[Sath] FROM [Users] WHERE (([UserName] = @username) AND ([Password] = @password))", con)
cmd.Parameters.AddWithValue("UserName", txtnamekarbari.Text)
cmd.Parameters.AddWithValue("Password", txtpas.Text)
con.Open()
dr = cmd.ExecuteReader
dr.Read()
Session.Contents("ADMIN") = dr(2).ToString
dr.Close()
If cmd.ExecuteScalar = txtnamekarbari.Text Then
FormsAuthentication.RedirectFromLoginPage(txtnamek arbari.Text, Check.Checked)
Session.Contents("start") = "yes"
ElseIf cmd.ExecuteScalar = 0 Then
lbler.Visible = True
End If

End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim q As String = Request.QueryString("quiz")
If Session.Contents("start") = "yes" Then
tbllogin.Visible = False
tblmenumain.Visible = False
tbluser.Visible = True
If Session.Contents("ADMIN") <> Nothing Then
lblkarbar.Text = Session.Contents("ADMIN").ToString
Else
End If
End If
Else
tbllogin.Visible = True
tblmenumain.Visible = True
tbluser.Visible = False
End If
End Sub

majnun
چهارشنبه 05 آبان 1389, 02:21 صبح
try
{
if (Session["user"].ToString() == "admin")
{

}
else
{

}
}
catch
{
Response.Redirect("Admin.aspx");
}



در پیج لود صفحه چک کن ببین سشن ساخته شده ادمین هست یا نه

حالا یا مقدار 1 و 2 روچک میکنی یا هرچیزی که خودت استفاده میکنی ...

daneshjoo2
چهارشنبه 05 آبان 1389, 02:27 صبح
سلام
دوست عزیز شما بهتره از مدل Role and Membership provider استفاده کنی، اگه providere رو خود بنویسی که چه بهتر... دیگه نیازی به لیبل و این جور چیزام نداری.

aftabgarmabakhsh
چهارشنبه 05 آبان 1389, 09:16 صبح
منم براي جدول user يك فيلد بولين تعريف كردم. اگر true باشد ادمين وگرنه كاربر عادي است

در هر صفحه sesion[is_admin] را چك ميكنم. اگر admin باشد مي تواند كارهاي مربوط به ادمين را انجام بدهد و گرنه يك كاربر عادي است