PDA

View Full Version : سوال: Ban کردن ip و ذخیره در دیتابیس



omid_kimia
پنج شنبه 14 بهمن 1389, 14:39 عصر
سلام
میخوام ipهایی که Banمیشن داخلgridview نمایش بدم.از کد زیر استفاده کردم


dt.ip_tables.InsertOnSubmit(new ip_table{list_ip=System.IO.File.AppendAllText

(Server.MapPath(),TextBox1.Text+Environment.NewLin e)});


با استفاده از کد بالا میشه داخل grid view نمایش داد؟

jaykob
پنج شنبه 14 بهمن 1389, 15:44 عصر
سلام برادر

خوب به چند شکل می شه که یک مدل رو من از اول تا به انتها می گم :

در صفحه مدیریت ip ها ما یک textbox داریم برای ورود اطلاعات و خوب یک قسمت هم شامل مدیریت ip ها که یک sqldatasource می خواد و یک gridview که بعد از config کردن sqldatasource می توانیم gridview را پر کنیم که می شه لیست ip های ما که می تونی خاصیت های Edit و delete و ... رو هم فعال کنی واسش .

خوب حالا واسه وارد کردن ip به دیتابیس داخل LINQ ما از این کد استفاده می کنیم :



string ipban = TextBox1.Text;
DataClassesDataContext db = new DataClassesDataContext();
db.tbl_bans.InsertOnSubmit(new tbl_ban { ip = ipban });
db.SubmitChanges();



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



string userip = Request.UserHostAddress;
string ConnectionString = ConfigurationManager.ConnectionStrings["Myconection"].ConnectionString;
var ctx = new DataClassesDataContext(ConnectionString);
var quary = (from a in ctx.tbl_bans
where
a.ip == userip
select a).SingleOrDefault();
if (quary != null)
{
Response.Redirect("error.aspx");
}



در این کد اگر کاربر حق دسترسی نداشته باشه و ip بن شده باشه به صفحه error.aspx انتقال پیدا می کنه


موفق باشی

omid_kimia
پنج شنبه 14 بهمن 1389, 16:43 عصر
تو کد دومی عبارت myconnection اختیاریه یا نه؟
تو کد پایین table_ip وlist_ip خطا میده.مشکلش چیه؟

var quary = (from a in ctx.ip_table
where
a.ip ==list_ip

jaykob
پنج شنبه 14 بهمن 1389, 16:47 عصر
تو کد دومی عبارت myconnection اختیاریه یا نه؟
تو کد پایین table_ip وlist_ip خطا میده.مشکلش چیه؟

var quary = (from a in ctx.ip_table
where
a.ip ==list_ip

نه دیگه Myconnection همون connectionstring ما در web.config هستش .

به خاطر همین که connection string درست تعریف نشده خطا می ده . در ضمن نام فیلد ها و نام جدول رو می تونی یا مثل همین بزاری و دیتابیس رو بسازی یا تغییر بدی

omid_kimia
پنج شنبه 14 بهمن 1389, 16:54 عصر
یعنی تو web.config باید تعریف کنیم؟

jaykob
پنج شنبه 14 بهمن 1389, 17:03 عصر
یعنی تو web.config باید تعریف کنیم؟

آره به این شکل :




connectionStrings>
<add name="myConnectionString" connectionString="Data Source=mypc-PC;Initial Catalog=my;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>