PDA

View Full Version : استفاده از رول و آتنتیکیشن در برنامه اما چه جوری؟



asi_hesam
پنج شنبه 23 اسفند 1386, 00:16 صبح
سلام دوستان.. اولا به جونه خودم الان 4 روزه دارم دنبال این کار میگردم چشمام در اومد پشت کامپیوتر ولی هنوز نتونستم اون چیزی رو که میخوام پیدا کنم... تو این سایت هم سرچ کردم ولی بازم نتونستم .... من چه جوری باید به کاربرام رول بدم؟؟؟ من این کارهارو کردم ( به ترتیب مینویسم) .. برنامه من دارای یه پیج لاگین هست با نام default.aspx حالا من داخل page_load دستورات زیر رو استفاده کردم



SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrin gs["conn"].ConnectionString);
SqlCommand CMD = new SqlCommand("SELECT نام_کاربری,رمز_عبور FROM Reg_U WHERE نام_کاربری='" + txt_uid.Text + "' AND رمز_عبور='" + txt_pwd.Text + "' ");
CMD.CommandType = CommandType.Text;
conn.Open();
CMD.Connection = conn;
// اگر تعداد سطرهای موجود در جدول که نام کاربری و رمز عبوری این چنین دارند برابر یک باشد
if (CMD.ExecuteScalar() != null)
FormsAuthentication.RedirectFromLoginPage(txt_uid. Text, chk_member.Checked);
//'اگر تعداد سطر های موجود در جدول که نام کاربری و رمز عبوری این چنین داشتن برابر صفر بود
elseif (CMD.ExecuteScalar() == null)
lbl.Visible = true;
conn.Close();


و فایل وب کانفیگ رو به این شکل نوشتم .



<authenticationmode="Forms">
<formsname="a"loginUrl="Default.aspx"defaultUrl="Default2.aspx">
</forms>
</authentication>


<locationpath="Default2.aspx">
<system.web>
<authorization>
<denyusers="?"/>
</authorization>
</system.web>
</location>


در این صورت به صفحه default2.aspx فقط کاربران شناخته شده دسترسی دارند. درسته؟
حالا من میخوام به این صفحه فقط مدیریت دسترسی داشته باشه یعنی اینجوری بگم سایت من 3 نوع کاربر داره admin,members,guset و من میخوام به فرض فقط ادمین به این صفحه دسترسی داشته باشه و کاربران members به این صفحه نتونن برن.. جانه من هر کس میتونه راهنمائیم کنه به خدا نمیخواستم تاپیک بزنم ولی نتونستم پیدا کنم مجبور شدم ...

hamedgh
پنج شنبه 23 اسفند 1386, 10:04 صبح
دیدم برای دوستان مقاله اموزشی فرستادی در مورد اپلود گفتم ما هم کمکت کنیم
1- از دیتا بیس مربوطه برای کنترل لوگین استفاده می کنی اگر که نه با این دستور ان را در دیتا بیست بساز aspnet_regsql
بعد می توانی با تنظیمات لازم که در مقالات امده کنترل لوگین و داشته باشی
چندی از مقالات

http://www.codeproject.com/KB/web-security/formsroleauth.aspx
http://www.codeproject.com/KB/aspnet/custom_authentication.aspx
http://www.codeproject.com/KB/aspnet/application-security.aspx
http://www.asp.net/learn/security/tutorial-01-cs.aspx
http://www.asp.net/learn/security/tutorial-02-cs.aspx
http://www.asp.net/learn/security/tutorial-03-cs.aspx
http://www.asp.net/learn/security/tutorial-04-cs.aspx
http://www.asp.net/learn/security/tutorial-05-cs.aspx
http://www.asp.net/learn/security/tutorial-06-cs.aspx
http://www.asp.net/learn/security/tutorial-07-cs.aspx
http://www.asp.net/learn/security/tutorial-08-cs.aspx

اگر کامل بلد نیستی اینها را بخوان
اگر هم مشکلی دیگری بود همین جا بپرس

MehranZand
پنج شنبه 23 اسفند 1386, 10:16 صبح
در وب کانفیگت شما مجوز ورود به صفحه default.aspx رو از افراد ناشناس گرفتی، برای اینکه فقط ادمین دسترسی داشته باشه باید مجور ورود رو از تمام افراد بگیری (*) و یک مجوز به یوزر ادمین یا رول ادمین بدی . با تگ allow . ولی بطور کلی توصیه میشه که از مبحث عضویت و نقش ها استفاده کنی.


اگر که نه با این دستور ان را در دیتا بیست بساز aspnet_regsql -i


فایل aspnet_regsql همچین آرگومانی نداره!

asi_hesam
پنج شنبه 23 اسفند 1386, 14:04 عصر
دیدم برای دوستان مقاله اموزشی فرستادی در مورد اپلود گفتم ما هم کمکت کنیم
1- از دیتا بیس مربوطه برای کنترل لوگین استفاده می کنی اگر که نه با این دستور ان را در دیتا بیست بساز aspnet_regsql
بعد می توانی با تنظیمات لازم که در مقالات امده کنترل لوگین و داشته باشی
چندی از مقالات

http://www.codeproject.com/KB/web-security/formsroleauth.aspx
http://www.codeproject.com/KB/aspnet/custom_authentication.aspx
http://www.codeproject.com/KB/aspnet/application-security.aspx
http://www.asp.net/learn/security/tutorial-01-cs.aspx
http://www.asp.net/learn/security/tutorial-02-cs.aspx
http://www.asp.net/learn/security/tutorial-03-cs.aspx
http://www.asp.net/learn/security/tutorial-04-cs.aspx
http://www.asp.net/learn/security/tutorial-05-cs.aspx
http://www.asp.net/learn/security/tutorial-06-cs.aspx
http://www.asp.net/learn/security/tutorial-07-cs.aspx
http://www.asp.net/learn/security/tutorial-08-cs.aspx

اگر کامل بلد نیستی اینها را بخوان
اگر هم مشکلی دیگری بود همین جا بپرس

حاجی خیلی ممنون از اینکه جواب دادی اول خواستم ازت تشکر کنم بعد برم سراغ مقاله ها ... خیلی ممنون واقعا مرسی

MehranZand
پنج شنبه 23 اسفند 1386, 14:19 عصر
یک بار دستور aspnet_regsql اجرا کن می بینی !

چی رو میبینم؟؟ شما با aspnet_regiis اشتباه گرفته بودی. عرض کردم که آرگومانی بصورت -i نداره این فایل! البته شما الان متنتونو ویرایش کردید و اصلاح کردید!

asi_hesam
جمعه 24 اسفند 1386, 00:09 صبح
دوستان من اینو میزارم یکی ببینه من چی کارش کنم درست کار کنه؟؟

asi_hesam
جمعه 24 اسفند 1386, 00:16 صبح
اینم از کوئری دیتابیس که چیزی نداره 3 تا فیلد




SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Temp]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[Temp](
[Username] [nchar](10) NULL,
[Password] [nchar](10) NULL,
[Roles] [nchar](10) NULL
) ON [PRIMARY]
END

hamedgh
جمعه 24 اسفند 1386, 09:23 صبح
اول بگو تابع User.IsInRole("Admin")
را کجا تعریف کردی که داری ازش مقدار می گیری
دوم
شما که داری در دیتا بیس خودت اینکار را انجام می دهی باید
اول از همه پس از نمایان شدن نقشش ان را redirect کنی
و نقشش را در سیشن ذخیره کنی و برای هر صفحه چک کنی
که این طرف اجازه ورود را دارد یا نه !
شما که در دیتا بیس خودت داری انجام می دهی نمی توانی از کد های
مثل user or membership یا از این قبیل کد ها استفاده کنی
چون اینها به تیبل های خودشان وصل می شوند

اول جستجو کن و اینکه مقاله های که برات فرستادم را انگار نخواندی!

جستجو........................................ .................................................. ..........

golhay2
جمعه 24 اسفند 1386, 22:07 عصر
با visual studio 2005 در ASP.NET Configurationهر rolی که میخواهی براحتی می تونی تعریف کنی بدون نیاز به کد نویسی

asi_hesam
شنبه 25 اسفند 1386, 01:01 صبح
با visual studio 2005 در ASP.NET Configurationهر rolی که میخواهی براحتی می تونی تعریف کنی بدون نیاز به کد نویسی


دوست من مرسی بابت پیشنهادت ولی استاد راد یه حرفی گقته که من شدید بهش ایمان دارم .... تو هم روش فکر کن ایشون گفتن که : کار ویزاردی مساوی با مرگ یک برنامه نویس .

من هم دوست دارم که کد خودم رو خودم بنویسم حالا به هر طریقی... الان نزدیک به یک هفته شایدم بیشتر که دنبال این موضوع هستم هنوز پیدا نکردم ولی کسی نمیتونه راه یک ساله رو یک شبه طی کنه ولی بازم مرسی بابت پیشنهادت

hamedgh
شنبه 25 اسفند 1386, 07:54 صبح
ست من مرسی بابت پیشنهادت ولی استاد راد یه حرفی گقته که من شدید بهش ایمان دارم .... تو هم روش فکر کن ایشون گفتن که : کار ویزاردی مساوی با مرگ یک برنامه نویس .

من هم دوست دارم که کد خودم رو خودم بنویسم حالا به هر طریقی... الان نزدیک به یک هفته شایدم بیشتر که دنبال این موضوع هستم هنوز پیدا نکردم ولی کسی نمیتونه راه یک ساله رو یک شبه طی کنه ولی بازم مرسی بابت پیشنهادتقرار نیست که ویزادی انجام بدهی شما کد نویسی اش را انجام بده
من اصلا از ویزارد استفاده نمی کنم ولی از همین شیوه استفاده می کنم
شما برو کد نویسی اش را یاد بگیر!

اگر هم اصلا نمی خواهی از این تکنولوژی استفاده کنی
حداقل الگوریتمش را یاد بگیر که خیلی بدرد ت می خوره کارت زود تر و حرفه ای تر راه می افتد

asi_hesam
شنبه 25 اسفند 1386, 14:26 عصر
قرار نیست که ویزادی انجام بدهی شما کد نویسی اش را انجام بده
من اصلا از ویزارد استفاده نمی کنم ولی از همین شیوه استفاده می کنم
شما برو کد نویسی اش را یاد بگیر!

اگر هم اصلا نمی خواهی از این تکنولوژی استفاده کنی
حداقل الگوریتمش را یاد بگیر که خیلی بدرد ت می خوره کارت زود تر و حرفه ای تر راه می افتد

دوست من مرسی بابت تذکرت چون تا به حال همچین کاری نکردم فکر کردم این هم نوعی ویزارد هست شرمنده . اگه شما پیشنهاد میکنی من نه نمیگم هر چی باشه تجربت بیشتر از منه. بازم مرسی ...

یاد گرفتنی کدش رو میزارم . :چشمک:

fereshte22
شنبه 25 اسفند 1386, 14:45 عصر
سلام
من یه برنامه ساده از اون چیزی که شما میخواهید اینجا میگذارم
فقط شما باید وقتی پوشه مجازی میسازید روی پوشه مجازی کلیک راست کرده ودر قسمت properties به تب directory security رفته و دکمه edit را کلیک کرده و در قسمت پایین صفحه جدید تیک گزینه integrated windows authentication را بگذارید

asi_hesam
شنبه 25 اسفند 1386, 18:51 عصر
بالاخره بعد از یک هفته تلاش موفق شدم جریان اتنتیکیشن رو رفع کنم .. اینم از سورس کامل برنامه میزارم تا افراد آماتور ازش استفاده کنند و واسه ما هم یه دعایی کرده باشن...