PDA

View Full Version : تشخیص کاربر در لود صفحه



vajihe11
شنبه 16 فروردین 1393, 21:12 عصر
سلام دوستان
من در پروژم وقتی کاربر لاگین میکنه بر حسب اینکه کاربر معمولی یا مدیر باشه div هایی(مد کاربر و مد کلاینت) رو نمایش یا عدم نمایش میزنم
و چون فرم لاگین در مستر پیج هست در دفعات بعد در هر صفحه چون مستر لود میشه باید چک کنم که بر حسب آن نمایش دیو ها بدرستی انجام بشه
کد زیر رو نوشتم
divmodir.Visible = false;
divclient.Visible = false;
bool b = Request.IsAuthenticated;
linqphysicDataContext l = new linqphysicDataContext();




if (b == true)
{
var acook = Server.HtmlEncode(Request.Cookies["user"].Values[0]);


var usrcl = (from cli in l.TblUsers where cli.userID == Convert.ToInt32(acook) && cli.IsAdmin == false select cli);
if (usrcl != null)
{ spShowClientResult[] c = l.spShowClient(Convert.ToInt32(acook)).ToArray();


string fname = c[0].Fname;
string lname = c[0].Lname;
name = fname + " " + lname;
divmodir.Visible = false;
index.Visible = false;
divclient.Visible = true;
}
else
{

var usersa = (from cl in l.TblUsers where cl.userID == Convert.ToInt32(acook) && cl.IsAdmin == true select cl);
if (usersa != null)
{
divmodir.Visible = true;
index.Visible = false;
divclient.Visible = false;
}

ولی مشکل اینجاس که همیشه توی شرط اولی میره و ...
مثلا اگه در مدیر لاگین کرده باشه و بخواهد لینکی رو بزنه میره توی مد کاربر همیشه و منوهای مربوط به کاربر رو نشون میده(چون شرط اول برا کاربره)
ممنون از همگی

shahram176
شنبه 16 فروردین 1393, 23:17 عصر
شما برا مدیر sesionبسازید برای کاربر هم sesion بسازید تو شرطتون بگید اگه sesionمدیر بود مد مدیر را نشون بده در غیر این صورت مد کاربر

Mohammad_dn
یک شنبه 17 فروردین 1393, 00:10 صبح
بهترین کار استفاده از رول هست...اما اگه نمیتونید استفاده کنید بهتره کاری رو که دوستمون گفتن انجام بدی...یعنی موقع لوگ این یه سشن تغریف کنی و تو از طریق اون بفهمی که مدیر وارد شده یا کاربر معمولی

vajihe11
یک شنبه 17 فروردین 1393, 11:29 صبح
میشه در مورد role ها و چگونگی استفادش توضیح بدین؟

Mohammad_dn
یک شنبه 17 فروردین 1393, 23:21 عصر
نگاه کنید

با استفاده از رول ها میتونیم به هر کاربر سطح دسترسی بدیم....و دیگه نیازی نیست که خودمو بیایم مثلا سشن رو ایجاد کنیم یا ....

mohammad kafiyan
سه شنبه 19 فروردین 1393, 10:48 صبح
با استفاده از رول ها میتونیم به هر کاربر سطح دسترسی بدیم....و دیگه نیازی نیست که خودمو بیایم مثلا سشن رو ایجاد کنیم یا ....

از role خود asp.net استفاده می کنید؟؟
یا خودتون جداگانه طراحی table را انجام می دهید (جدول کاربر و رول ) درسته؟

Mohammad_dn
سه شنبه 19 فروردین 1393, 12:17 عصر
از خود ای اس پی استفاده میکنم....با استفاده از ابزار aspnet_regsql تیبلای مربوطه رو ایجاد میکنم...بعد تغییر دیتابیس میدم...

تغییر دیتابیس:وقتی شما به صورت پیشفرض از رول ها استفاده میکنی ASP.NET خودش یه بانک در پوشه ی App_Data ایجاد میکنه و اطلاعات در اون ذخیره میشه...اما شما میتونید اونو تغییر بدید تا از دیتابیس شما استفاده کنه

کافیه کد زیرو در وب کانفیگ بزارید:


<connectionStrings>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="YourConnectionString" providerName="System.Data.SqlClient"/>
</connectionStrings>

vajihe11
چهارشنبه 27 فروردین 1393, 12:59 عصر
از role خود asp.net استفاده می کنید؟؟
یا خودتون جداگانه طراحی table را انجام می دهید (جدول کاربر و رول ) درسته؟
خودم جدول ایجاد کردم...