PDA

View Full Version : آموزش: نحوه تغریف سطح دسترسی



amir200h
دوشنبه 21 مرداد 1392, 09:56 صبح
سلام به همه دوستان.
روش کار به این صورته که در جدولی که ما یوزرنام و پسورد رو ذخیره میکنیم فیلدهایی هم برای هر بخش که میخواهیم کاربر به آنها دسترسی داشته باشه یا نداشته باشه از نوع bit تعریف میکنیم.
در فرم لاگین برنامه میایم به تعداد فیلدهایی سطح دسترسی که تو بانک تعریف کردیم متغییرهایی از نوع bool تعریف میکنیم.
سپس زمانی که کاربر یوزر و پسورد رو وارد کرد ما مقدار فیلدهای سطح دسترسی رو میریزیم توی متغییرها و بعد فرم اصلی رو نمایش میدیم.
در form_load فرم اصلی میایم جاهایی که میخوایم فعال یا غیر فعال باشه رو با مقادیر متغییرهای فرم لاگین پر میکنیم.
به همین راحتی به همین خوشمزه گی :لبخند:
سعی کردم با زبان ساده توضیح بدم.
یک نمونه برنامه هم میزارم.
بانکی به نام Test ایجاد کنین سپس جدولی با مشخصات زیر درست کنین بعد برنامه رو اجرا کنین

esafb52
دوشنبه 21 مرداد 1392, 14:15 عصر
یه دوتا if ساده بهش اضافه میکردی که مثلا اگه یوز ادمین بود همه فعال و اگه فلان بود وفلان .............نمیگی یه فرد مبتدی مثل خودم رو به اشتباه میندازه این کد ها رو هم میذاشتی احتیاجی به ضمیمه نبود بچه پروژه رو خودشون درست میکردن!!!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsFormsApplication79
{
public partial class Form1 : Form
{
public static bool btn1 = false;
public static bool btn2 = false;
public static bool btn3 = false;
public Form1()
{

InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = "server=(local);database=Test;trusted_connection=ye s";

SqlCommand com = new SqlCommand();
com.Connection = con;
string sql = "select * from accont where uname='{0}' and upass='{1}'";
sql = string.Format(sql, txtuser.Text, txtpass.Text);
com.CommandText = sql;
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = com;

DataTable dt = new DataTable();
da.Fill(dt);
try
{
if (dt.Rows[0][0].ToString() == txtuser.Text && dt.Rows[0][1].ToString() == txtpass.Text)
{

Form2 frm2 = new Form2();
btn1 =Convert.ToBoolean(dt.Rows[0][2].ToString());
btn2 = Convert.ToBoolean(dt.Rows[0][3].ToString());
btn3 = Convert.ToBoolean(dt.Rows[0][4].ToString());

frm2.Show();
this.Hide();
}
}
catch
{
MessageBox.Show("نام کاربری یا کلمه عبور اشتباه است", "بروز خطا", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
}
}
}
}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication79
{

public partial class Form2 : Form
{

public Form2()
{
InitializeComponent();

}

private void Form2_Load(object sender, EventArgs e)
{
button1.Enabled = Form1.btn1;
button2.Enabled = Form1.btn2;
button3.Enabled = Form1.btn3;

}

amir200h
دوشنبه 21 مرداد 1392, 14:33 عصر
یه دوتا if ساده بهش اضافه میکردی که مثلا اگه یوز ادمین بود همه فعال و اگه فلان بود وفلان .............نمیگی یه فرد مبتدی مثل خودم رو به اشتباه میندازه این کد ها رو هم میذاشتی احتیاجی به ضمیمه نبود بچه پروژه رو خودشون درست میکردن!!!

خوب اینجوری فقط کد اضافه باید مینوشتم. چه کاریه؟؟؟؟!!!!!!
بعدش تو بحث تخصصی تر هم که بریم یه کرکر با تزریق admin به کدمون راحت کل برنامه رو بدست میاره.
اینایی هم که گفتم از روی تجربه س. شما اگه دلیلی واسه گذاشتن if اضافه دارین بهتره بگین دوستان و من هم استفاده کنیم. ممنونم

reza4359
دوشنبه 18 آذر 1392, 19:45 عصر
سلام به همه دوستان.
روش کار به این صورته که در جدولی که ما یوزرنام و پسورد رو ذخیره میکنیم فیلدهایی هم برای هر بخش که میخواهیم کاربر به آنها دسترسی داشته باشه یا نداشته باشه از نوع bit تعریف میکنیم.
در فرم لاگین برنامه میایم به تعداد فیلدهایی سطح دسترسی که تو بانک تعریف کردیم متغییرهایی از نوع bool تعریف میکنیم.
سپس زمانی که کاربر یوزر و پسورد رو وارد کرد ما مقدار فیلدهای سطح دسترسی رو میریزیم توی متغییرها و بعد فرم اصلی رو نمایش میدیم.
در form_load فرم اصلی میایم جاهایی که میخوایم فعال یا غیر فعال باشه رو با مقادیر متغییرهای فرم لاگین پر میکنیم.
به همین راحتی به همین خوشمزه گی :لبخند:
سعی کردم با زبان ساده توضیح بدم.
یک نمونه برنامه هم میزارم.
بانکی به نام Test ایجاد کنین سپس جدولی با مشخصات زیر درست کنین بعد برنامه رو اجرا کنین
سلام با اینکه این پست چند ماهی ازش گذشته و لی من از این برنامه استفاده کردم به اینجا گیر میده و ارور میگیره
btn1 =Convert.ToBoolean(dt.Rows[0][2].ToString());
اینم ارور
String was not recognized as a valid Boolean
ایراد از کجاست؟

reza4359
دوشنبه 18 آذر 1392, 21:36 عصر
دوستان مشکل حل شد ممنون

kasraaa
دوشنبه 18 آذر 1392, 21:43 عصر
من با امیر موافقم راه حل منطقی همینه