PDA

View Full Version : سوال: مشکل در ساخت login



sara_1365
پنج شنبه 15 اردیبهشت 1390, 23:23 عصر
سلام.من میخوام تو صفحه اول سایتم مثل همین سایت برای کاربرا login درست کنم و برای هر نوع کاربر هم سطح دسترسی تعریف کنم.ممکنه کنو راهنمایی کنید؟
:متفکر:

alireza.tofigh
جمعه 16 اردیبهشت 1390, 00:23 صبح
برای شروع بهتره با ابزار خود ویژوال استودیو این کارو انجام بدی تا کم کم آشنا بشی چی به چیه، صفحه لاگین و سایر صفحه هاتو که طراحی کردی بعدش روی Asp.netConfiguration داخل تب Website کلیک کن. البته چون می خوای نقش هم تعریف کنی پس صفحه هاتو تو فولدر بزار. این طوری می تونی به هر فولدر یه نقش بدی.
محیطی که باز میشه به راحتی کمکت میکنه تا تمام این کارا رو انجام بدی، به نظرم به عنوان یه برنامه نویس بهتره اول خودت بری و تو اون محیط یه کم کنکاش کنی بعد اگه اشکالی بود بیای بگی، موفق باشی.

clover
جمعه 16 اردیبهشت 1390, 00:23 صبح
به طور کلی باید از امکانات ASP.NET Membership استفاده کنید.

من میخوام تو صفحه اول سایتم مثل همین سایت برای کاربرا login درست کنم
از کنترل Login استفاده کنید، به راحتی می تونید اون رو سفارشی کنید و در هر قسمتی که مایل هستید استفاده کنید.


برای هر نوع کاربر هم سطح دسترسی تعریف کنم
در این مورد روش های زیادی وجود داره، یکی از اون ها قرار دادن صفحات مربوط به هر نقش در یک پوشه ی جدا و تعریف دسترسی برای اون نقش هست.

karim orooji
جمعه 16 اردیبهشت 1390, 00:26 صبح
دوست عزیز
اگه جستجو کنی در این مورد زیاد بحث

sara_1365
شنبه 17 اردیبهشت 1390, 11:18 صبح
ممکنه بیشتر توضیح بدید.
میخوام از login خود برنامه استفاده کنم .
چه طوری عمل شناسایی و عمل دسترسی رو تعریف کنم.خودم فکر میکنم باید یه جدول تعریف کنم که نوع کاربرا توش باشن.ولی در باره چوشه جداگونه نمیدونم چیه؟

eshpilen
شنبه 17 اردیبهشت 1390, 12:22 عصر
آخه ASP.NET که واسه این نیست شما سیستمها و کنترل های آمادهء خودش رو بذارید کنار و خودتون کد بنویسید. مگر در جایی که واقعا مزیت قابل توجهی داشته باشه یا امکانات آمادهء ASP.NET جواب نده و شما نیاز خاصی داشته باشید.
اگر خیلی علاقه دارید همه چیز رو خودتون درست کنید بهتره برید سراغ PHP، چون سطح پایین تر هست و برای اینطور کارها مناسبتره.
بنظر بنده چیزهایی که ما خودمون درست کنیم درحالیکه خود ASP.NET اونا رو داره مسخره و بی معنا میشه. بخاطر اینکه خیلی به سختی میشه امکاناتی به کامل و باکیفیت و امن بودن ASP.NET رو درست کرد. همین ثبت نام کاربر و لاگین خودش از چیزی که بنظر میاد خیلی بیشتر گسترده هست و جزییات امنیتی زیادی هم داره که همشون در سیستم Membership لحاظ شدن و این سیستم از نظر امکان تنظیم امکانات و پارامترها و ظاهر هم تاحد زیادی کامله و برای بیشتر کاربردها باید کفایت بکنه. واقعا شما میتونید همهء این امکانات و مسائل امنیتی رو به کیفیت سیستم ASP.NET پیاده سازی کنید؟

بنظر بنده با هر زبان و فریمورکی باید در چهارچوب هدف و ساختار خودش کار کرد.
ASP.NET یک فریمورک کامپوننت گرا هست برای ساخت هرچه سریعتر و راحتتر صفحات وب و اپلیکیشن های متداول.
به اینصورت از هر زبان و فریمورکی بصورت بهینه استفاده میکنیم و وقتمون رو برای یادگیری و کدزنی اون بیهوده تلف نکردیم. چون ساختار هر زبان و فریمورکی برای هدف و روش خودش بهینه هست و اکثرا کار کردن خارج از اون روش و هدف چیز جالب و بهینه ای از آب درنمیاد.

اگر هم مشکل در یادگیری و درک ساختار و سیستمهای خود ASP.NET هست، بهتره بجای اینکه بخواید خودتون چیزی رو درست بکنید اول سعی بیشتری بکنید تا ساختار و امکانات و طرز استفاده از خود ASP.NET رو یاد بگیرید.

ircast
شنبه 17 اردیبهشت 1390, 12:46 عصر
سلام.من میخوام تو صفحه اول سایتم مثل همین سایت برای کاربرا login درست کنم و برای هر نوع کاربر هم سطح دسترسی تعریف کنم.ممکنه کنو راهنمایی کنید؟
:متفکر:

سلام
سری به اینجا بزنید شاید کمکتون کنه
ساده:
http://www.how2learnasp.net/article.aspx?code=41617f88-b91f-4787-8cce-3517eb1dbbfe

پیشرفته:
http://www.how2learnasp.net/article.aspx?code=85c9dd50-0935-48c2-9039-949da6b42f8d

a_123123123123
یک شنبه 18 اردیبهشت 1390, 12:23 عصر
من میخوام سطح دسترسی درست کنم.چه فرقی میکنه کادر loginam مال asp باشه یا نباشه؟؟؟؟؟؟؟؟:متعجب:

sara_1365
یک شنبه 18 اردیبهشت 1390, 20:27 عصر
سلام.لینکایی که گذاشتید خیلی خوبه ولی با اکسس هست.من با sql کار میکنم.

shv3264
سه شنبه 20 اردیبهشت 1390, 17:02 عصر
دوست عزیز
فرق استفاده از امکانات asp.net با کنترلهای خودت اینه که کارت خیلی راحت تر و اصولی تر و سریع تر و کم هزینه تر انجام میشه .

حالا بزار از اول شروع کنیم .

برای راه اندازی سرویس کاربری asp.net باید از منوی website گزینه asp.net configuration رو انتخاب کنی.

با اینکار صفحه جدیدی توی مرورگرت باز میشه ، برو به تب security و مطمئن شو authentication mode حتما forms انتخاب شده باشه.
حالا با ساختن اولین کاربر ، برنامه به طور خودکار دیتابیس ASPNETDB.MDF رو به برنامه اضافه میکنه.

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

به طور مثال کاربری به اسم admin بساز و در نقش Manager قرار بده.

حالا چندتا تابع که بهشون اجتیاج پیدا می کنی بهت معرفی می کنم :

تابع ساختن کاربر :


Membership.createuser(byval username as string, byval password as string, byval emailaddress as string)

تابع حذف کاربر :


Membership.DeleteUser(byval username as string)

تابع معتبرسازی کاربر ( برای تشخیص صحت رمز عبور ) :


Membership.ValidateUser(byval username as string, byval password as string)

بدیهیه که خروجی این تابع از نوع true و false هستش که باید در if استفاده بشه

تابع ورود به سایت :


FormsAuthentication.RedirectFromLoginPage(byval username as string)

تابع خروج از سایت :


FormsAuthentication.SignOut()

با استفاده از عبارت Membership.getuser() ، کسی که کد رو اجرا میکنه اگه کابری باشه که وارد سایت شده باشه ، به مشخصاتش دسترسی پیدا می کنی.

برای تعیین سطح کاربر همونطوری که گفتم باید از role استفاده کنی ، برای اینکار یه شرط تعیین می کنی ، مثلا :



If Not User.isInRole(Byval username As String) Then

response.redirect("AccessDenied.htm")

End If


برای بدس آوردن نام کاربر می تونی از Membership.GetUser().UserName استفاده کنی یا از User.Identity
و برای اینکه بفهمی آیا کاربر وارد شده یا نه از Profile.isAnonymous

راستی حالا که حرف از profile شد بزار این رو هم بگم ، اگه می خوای اطلاعات بیشتری مثل سن ، نام ، نام خانوادگی و ... از کاربرت بگیری باید از profile استفاده کنی که خیلی هم راحته.
برای این کار باید توی فایل web.config یه تغییر کوچولو بدی.

توی این فایل عبارت زیر رو پیدا کن ، اگه نیست خودت توی قسمت <system.web> اضافش کن :


<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
</providers>
</profile>

بعد از عبارت </Providers> اینو اضافه کن :


<properties></Properties>

و در بین این تگ طبق نمونه مشخصه هات رو میسازی :


<add name="Propertyname" type="PropertyType" />

البته پیشفرض type هم string هست که میتونی ننویسیش . مثلا :



<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
</providers>
<properties>
<add name ="FirstName"/>
<add name ="LastName" type ="system.string"/>
<add name ="Age" type="system.int16"/>
</properties>
</profile>


حالا باید فایل web.config رو ببندی تا سیو بشه و تغییرات انجام بشن .

با این کار property هایی که تعریف کردی توی کلاس profile اضافه میشن
مثلا برای تعیین یا بدست آوردن مشخصه Firstname می تونی از کد زیر استفاده کنی :


Profile.FirstName = "Shahin"

Label1.Text=Profile.FirstName

اگه خواستی مشخصه های کاربری دیگه ای رو تغییر بدی ( مثلا Firstname طرف رو ) می تونی از کد زیر استفاده کنی :


Profile.GetProfile(username as string).FirstName

اینجوری می تونی موقع ثبت نام اول با تابع createuser کاربرو بسازی و با کد بالا مشخصاتش رو تنظیم کنی.

بدیهیه که کارای دیگه مثل مقایسه رمز عبور با تکرارش و ... با خودته

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

a_123123123123
چهارشنبه 05 مرداد 1390, 18:07 عصر
سلام
منم همچین مشکلی دارم
ولی صفحه ثبت نامم رو خودم درست کردم و به کاربر خودم نقش میدم
در این حالت باید چی کار کرد؟

a_123123123123
چهارشنبه 05 مرداد 1390, 20:44 عصر
کسی نیست جواب ده؟

dontspeak
پنج شنبه 06 مرداد 1390, 00:04 صبح
دوست عزیز
فرق استفاده از امکانات asp.net با کنترلهای خودت اینه که کارت خیلی راحت تر و اصولی تر و سریع تر و کم هزینه تر انجام میشه .

حالا بزار از اول شروع کنیم .

برای راه اندازی سرویس کاربری asp.net باید از منوی website گزینه asp.net configuration رو انتخاب کنی.

با اینکار صفحه جدیدی توی مرورگرت باز میشه ، برو به تب security و مطمئن شو authentication mode حتما forms انتخاب شده باشه.
حالا با ساختن اولین کاربر ، برنامه به طور خودکار دیتابیس ASPNETDB.MDF رو به برنامه اضافه میکنه.

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

به طور مثال کاربری به اسم admin بساز و در نقش Manager قرار بده.

حالا چندتا تابع که بهشون اجتیاج پیدا می کنی بهت معرفی می کنم :

تابع ساختن کاربر :


Membership.createuser(byval username as string, byval password as string, byval emailaddress as string)

تابع حذف کاربر :


Membership.DeleteUser(byval username as string)

تابع معتبرسازی کاربر ( برای تشخیص صحت رمز عبور ) :


Membership.ValidateUser(byval username as string, byval password as string)

بدیهیه که خروجی این تابع از نوع true و false هستش که باید در if استفاده بشه

تابع ورود به سایت :


FormsAuthentication.RedirectFromLoginPage(byval username as string)

تابع خروج از سایت :


FormsAuthentication.SignOut()

با استفاده از عبارت Membership.getuser() ، کسی که کد رو اجرا میکنه اگه کابری باشه که وارد سایت شده باشه ، به مشخصاتش دسترسی پیدا می کنی.

برای تعیین سطح کاربر همونطوری که گفتم باید از role استفاده کنی ، برای اینکار یه شرط تعیین می کنی ، مثلا :



If Not User.isInRole(Byval username As String) Then

response.redirect("AccessDenied.htm")

End If


برای بدس آوردن نام کاربر می تونی از Membership.GetUser().UserName استفاده کنی یا از User.Identity
و برای اینکه بفهمی آیا کاربر وارد شده یا نه از Profile.isAnonymous

راستی حالا که حرف از profile شد بزار این رو هم بگم ، اگه می خوای اطلاعات بیشتری مثل سن ، نام ، نام خانوادگی و ... از کاربرت بگیری باید از profile استفاده کنی که خیلی هم راحته.
برای این کار باید توی فایل web.config یه تغییر کوچولو بدی.

توی این فایل عبارت زیر رو پیدا کن ، اگه نیست خودت توی قسمت <system.web> اضافش کن :


<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
</providers>
</profile>

بعد از عبارت </Providers> اینو اضافه کن :


<properties></Properties>

و در بین این تگ طبق نمونه مشخصه هات رو میسازی :


<add name="Propertyname" type="PropertyType" />

البته پیشفرض type هم string هست که میتونی ننویسیش . مثلا :



<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
</providers>
<properties>
<add name ="FirstName"/>
<add name ="LastName" type ="system.string"/>
<add name ="Age" type="system.int16"/>
</properties>
</profile>


حالا باید فایل web.config رو ببندی تا سیو بشه و تغییرات انجام بشن .

با این کار property هایی که تعریف کردی توی کلاس profile اضافه میشن
مثلا برای تعیین یا بدست آوردن مشخصه Firstname می تونی از کد زیر استفاده کنی :


Profile.FirstName = "Shahin"

Label1.Text=Profile.FirstName

اگه خواستی مشخصه های کاربری دیگه ای رو تغییر بدی ( مثلا Firstname طرف رو ) می تونی از کد زیر استفاده کنی :


Profile.GetProfile(username as string).FirstName

اینجوری می تونی موقع ثبت نام اول با تابع createuser کاربرو بسازی و با کد بالا مشخصاتش رو تنظیم کنی.

بدیهیه که کارای دیگه مثل مقایسه رمز عبور با تکرارش و ... با خودته

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

dontspeak
پنج شنبه 06 مرداد 1390, 00:17 صبح
کسی نیست جواب ده؟
با توجه به اینکه در مورد پروژه شما آگاهی دارم بهتره که از کنترلهای asp استفاده کنید. و دوست عزیزمون هم به بهترین نحو ممکن توضیح دادن منم توی لینک زیر در مورد نحوه استفاده از کنترلهای لاگین توضیح دادم
http://barnamenevis.org/showthread.php?289161-%DA%A9%D9%86%D8%AA%D8%B1%D9%84-Login&p=1272591&highlight=#post1272591

a_123123123123
پنج شنبه 06 مرداد 1390, 09:32 صبح
سلام مرسی
ولی فکر میکنم membership بهدردم نخوره
چون باید از ائنجا یوزر تعریف بشه ولی من خودم صفحه ثبت نام درست کردم
در ضمن یه عالم جدول درست میکنه
من نمیدونم اونا به چه درد میخورن
در ضمن من خودم تغییررمز عبوز اینا رو درست کردم
همه صفحات مربوط به هر کاربر هم تو پوشه خودشه
من اون دوتا لینک ساده و پیشرفته که میدونم شمام دیدی رو دارم
باهاش یه چیزای کمی ازاش دستپیرم شد ولی باید گسترش بدم
که نمیدونم چه طوری
چه طوری باید این کارو انجام داد؟