PDA

View Full Version : سوال: احراز هویت کاربران



f_siyamak
شنبه 13 شهریور 1389, 22:47 عصر
با سلام
( طراحی وب سایت با ASP.NET ,C#‎ ) مشکل ما توی احراز هویت کاربرانه که از طریق WAT انجام دادیم ما در پروژمون سه تا Role تعریف کردیم 1- مدیر سازمان 2- کارمندان 3- مشتریان

در Role کارمندان 10 تا کارمند هستن که اطلاعات مشتریان خودشون رو با دادن کد مشتری به اونها در پایگاه داده ثبت می کنند 2 رقم اول این کد همان کد کارمندی است که اطلاعات رو ثبت کرده
حالا ما می خواهیم هرکارمند در هنگام گزارش گیری فقط اطلاعات مشتریان خودشو ببینه که برای رسیدن به این هدفمون ما 10 تا کاربر در نقش کارمند(role کارمندان) تعریف کردیم و نام کاربریشون رو مساوی کد کارمندیشون قرار دادیم ولی نمی دونیم که چطور با توجه به نام کاربری که کارمند در صفحه login وارد می کنه رو در گزارش گیری استفاده کنیم.:متفکر:
با تشکر از دوستانی که برای حل مشکل ما وقت میزارند.:لبخندساده:

raziee
شنبه 13 شهریور 1389, 23:11 عصر
ولی نمی دونیم که چطور با توجه به نام کاربری که کارمند در صفحه login وارد می کنه رو در گزارش گیری استفاده کنیم.
بعد از اینکه کاربر لاگین میکنه یه سلکت به sql میزنید و Role های اون فرد(کاربر لاگین شده رو میگیرید).
سوالی که از شما دارم اینه که آیا از ممبرشیپ خود دات نت استفاده میکنید و یا خودتون نوشتید؟

milade
شنبه 13 شهریور 1389, 23:13 عصر
سلام عزیزم .
به برنامه نویس خوش اومدی .

برا این کار شما توی جدول کاربرها ( مشتری .. ) یه ستون میسازی برا ذخیره نام کلرمندی که این کاربر مال ایشون هست .
حالا توی گزارش گیری این ستون رو به راحتی لحاظ میکنی ...

ASPX
یک شنبه 14 شهریور 1389, 09:27 صبح
اين بحث بيشتر با طراحي درست بانك اطلاعاتي و جدولها به سادگي انجام ميشه
شما جدولي بايد بسازي به اسم (كارمند-مشتريان! ) كه كد كارمند (يا id اون ) و كد مشتري توش قرار دارند. مگه هر كارمند براي خودش مشتري درج نميكنه ؟!
وقتي كارمند لاگين ميكنه توي صفحه گزارشات كارمند


SELECT * FROM كارمند-مشتريان WHERE كد كارمندي=(كد ي كارمندي كه لاگين كرده)

f_siyamak
یک شنبه 14 شهریور 1389, 18:21 عصر
ما ازممبر شیب خود دات نت استفاده کردیم و برای ورود کاربرامون از ابزار آماده ی login موجود در toolbox استفاده کردیم و مشکل ما اینه که نمی دونیم چطور نام کاربری(user name ) رو از ابزار login بخونیم و با فیلد کد مشتری مقایسه اش کنیم.(مثلا ما وقتی در نام کاربریمون مقدار 23hasani رو وارد کردیم در گزارشاتمون فقط مشتری هایی که کدشون با 23 شروع می شه رو نمایش بده.)

raziee
یک شنبه 14 شهریور 1389, 20:52 عصر
برای بدست آوردن نام کاربری و ایجاد یک "نقش" و اضافه کردن یک کاربر به یک نقش از کد زیر استفاده کنید.

string userName = User.Identity.Name;
Roles.CreateRole("Admin");
Roles.AddUserToRole(userName, "Admin");

و با فیلد کد مشتری مقایسه اش کنیم.(مثلا ما وقتی در نام کاربریمون مقدار 23hasani رو وارد کردیم در گزارشاتمون فقط مشتری هایی که کدشون با 23 شروع می شه رو نمایش بده.)
پیاده سازی نرافزارتون مشکل داره.
بهتره دوباره مدل سازی کنید.

شما جدولي بايد بسازي به اسم (كارمند-مشتريان! ) كه كد كارمند (يا id اون ) و كد مشتري توش قرار دارند.
دوستمون راه حل خوبی پشنهاد دادند.