PDA

View Full Version : signout و کوکی



fereshte22
چهارشنبه 14 شهریور 1386, 12:54 عصر
سلام
من در سایت خودم موقع ورود کاربران نام کاربری انها را در کوکی قرار دادم


Dim c AsNew HttpCookie("register")
c.Value = TextBoxemail.Text
Response.Cookies.Add(c)

و با مقدار کوکی در صفحات کاربران را شناسایی میکنم.
سوال من در مورد موقع signout کاربران است.
برای خروج کاربر ایا درست است که کوکی را delete کنیم.؟
یا دوستان راه بهتری را پیشنهاد میکنند.

nazaninam
چهارشنبه 14 شهریور 1386, 14:18 عصر
راه قدیمی است و در AspClassic استفاده می شد ! چرا از سیستم Authentication دات نت استفاده نمی کنی؟

fereshte22
چهارشنبه 14 شهریور 1386, 15:00 عصر
ایا استفاده از کوکی مشکلی دارد؟

Nightbat
چهارشنبه 14 شهریور 1386, 15:23 عصر
اگه می خوای از کوکی استفاده کنی، خودت راهش رو گفتی، کوکی رو خالی کن. ولی قضیه اینه که تکنولوژی امکانات راحتتر و بهتری در اختیارت قرار داده. حالا اگر دلیل خاصی برای استفاده کردن از کوکی داری خوب استفاده کن.

amir.net
چهارشنبه 14 شهریور 1386, 15:33 عصر
راه قدیمی است و در AspClassic استفاده می شد ! چرا از سیستم Authentication دات نت استفاده نمی کنی؟


میشه روش کار رو توضیح بیشتری بدهید؟ مثلا" چطوری میشه یوزر های تعریف شده در یک بانک اطلاعاتی رو مدیریت کرد ؟

در ضمن هنگام خروج یک کاربر اگه کاربر بروزر را close کند آیا روی سرور فهمیدن آن امکان پذیر است ؟ ممنون

Nightbat
چهارشنبه 14 شهریور 1386, 15:51 عصر
میشه روش کار رو توضیح بیشتری بدهید؟ مثلا" چطوری میشه یوزر های تعریف شده در یک بانک اطلاعاتی رو مدیریت کرد ؟

در ضمن هنگام خروج یک کاربر اگه کاربر بروزر را close کند آیا روی سرور فهمیدن آن امکان پذیر است ؟ ممنون
در مورد روش دات نت توضیح می خوای یا Asp ؟

amir.net
چهارشنبه 14 شهریور 1386, 17:06 عصر
لطفاً در مورد asp.net توضیح بدین

fereshte22
چهارشنبه 14 شهریور 1386, 17:51 عصر
راه قدیمی است و در AspClassic استفاده می شد ! چرا از سیستم Authentication دات نت استفاده نمی کنی؟

ایا منظور شما همان Forms Authentication که در لینک زیر توضیح داده شده است.
http://www.codeproject.com/aspnet/formsroleauth.asp

rtech
چهارشنبه 14 شهریور 1386, 21:10 عصر
دوستان من که اصلا استفاده از کنترل های asp.net مثل createuser wizard و کنترل ها login رو پیشنهاد نمیکنم ، مطمئن باشید در پروژه های بزرگ به مشکل برخواهید خورد اما برای پروژه های کوچیک مناسبه

Behrouz_Rad
چهارشنبه 14 شهریور 1386, 21:46 عصر
دوستان من که اصلا استفاده از کنترل های asp.net مثل createuser wizard و کنترل ها login رو پیشنهاد نمیکنم ، مطمئن باشید در پروژه های بزرگ به مشکل برخواهید خورد اما برای پروژه های کوچیک مناسبه
جانا سخن از زبان من! میگویی!

jasadeghi
پنج شنبه 15 شهریور 1386, 11:37 صبح
به نظر اساتید بهترین روش شناسایی کاربر چیه؟

fereshte22
جمعه 16 شهریور 1386, 14:58 عصر
سلام
من از Forms Authentication که در لینک زیر توضیح داده شده بود برای تشخیص هویت استفاده کردم.
http://www.codeproject.com/aspnet/formsroleauth.asp
(البته مفهموم چند تا از کدهاش برای روشن نیست.)
من یه پوشه admin دارم که برای دسترسی به همه صفحات آن نیاز به login دارم.
اما یه قسمت هم قسمت مربوط به کاربران است که فقط بعضی لز صفحات اون احتیاج به login دارد.
حالا سوال من اینه ایا حتما صفحات login قسمت admin و قسمت کاربران باید یکسان باشد؟
من در webconfig پوشه admin از کد زیر استفاده کردم.


<authorization>
<!-- Order and case are important below -->
<allowroles="Administrator"/>
<denyusers="*"/>
</authorization>


ودر webconfig اصلی :


<authenticationmode="Forms">
<formsname="MYWEBAPP.ASPXAUTH"
loginUrl="login.aspx"
protection="All"
path="/"/>
</authentication>
<authorization>
<allowusers="*"/>
</authorization>



در ضمن با چه دستوری میتوان در طی صفحات مختلف به مقدار userneme کاربر ی که تشخیص هویت شده است دسترسی داشت.؟
کد صفحه login:



FormsAuthentication.Initialize()
Dim conn AsNew SqlConnection(ConfigurationManager.ConnectionStrin gs("ssgshopConnectionString").ConnectionString)
Dim cmd As SqlCommand = conn.CreateCommand
cmd.CommandText = "select roles from f where username=@username " + "AND password=@password"
' Fill our parameters
cmd.Parameters.Add("@username", SqlDbType.NVarChar, 50).Value = Username.Value
cmd.Parameters.Add("@password", SqlDbType.NVarChar, 50).Value = FormsAuthentication.HashPasswordForStoringInConfig File(Password.Value.ToLower, "md5")
conn.Open()
Dim reader As SqlDataReader = cmd.ExecuteReader
If reader.Read Then
Dim ticket AsNew FormsAuthenticationTicket(1, Username.Value, DateTime.Now, DateTime.Now.AddMinutes(30), True, reader.GetString(0), _
FormsAuthentication.FormsCookiePath)

Dim hash AsString = FormsAuthentication.Encrypt(ticket)
Dim cookie AsNew HttpCookie(FormsAuthentication.FormsCookieName, hash)
If ticket.IsPersistent Then
cookie.Expires = ticket.Expiration
EndIf

Response.Cookies.Add(cookie)

Dim returnUrl AsString = Request.QueryString("ReturnUrl")
If returnUrl IsNothingThen
returnUrl = "/"
EndIf
Response.Redirect(returnUrl)
Else

ErrorLabel.Visible = True
EndIf
reader.Close()
conn.Close()


ودر global



ProtectedSub Application_AuthenticateRequest(ByVal sender AsObject, ByVal e As EventArgs)

If HttpContext.Current.User IsNotNothingThen
If HttpContext.Current.User.Identity.IsAuthenticated Then
IfTypeOf HttpContext.Current.User.Identity Is FormsIdentity Then
Dim id As FormsIdentity = DirectCast(HttpContext.Current.User.Identity, FormsIdentity)
Dim ticket As FormsAuthenticationTicket = id.Ticket

' Get the stored user-data, in this case, our roles
Dim userData AsString = ticket.UserData
Dim roles AsString() = userData.Split(","c)
HttpContext.Current.User = New System.Security.Principal.GenericPrincipal(id, roles)

EndIf
EndIf
EndIf
EndSub

fereshte22
شنبه 17 شهریور 1386, 09:36 صبح
سلام
مشکل یافتن نام کاربری با کد زیر حل شد.


Context.User.Identity.Name

از دوستان خواهش میکنم که من را در مورد استفاده از دو صفحه login راهنمایی کنند.
من در webconfig پوشه admin از کد زیر استفاده کردم.


<authenticationmode ="Forms " >
<!-- Order and case are important below -->
<formsname="MYWEBAPP.ASPXAUTH"
loginUrl="login.aspx"
protection="All"
path="/"/>
</authentication >
<authorization>
<allowroles="Administrator"/>
<denyusers="*"/>
</authorization>

که با خطای MachineToApplication برخورد کردم
طبق راهنمایی دوستان در همین سایت در iis و در قسمت application setting پوشه admin دکمه create را کلیک کردم ولی باز هم این خطا را میگیرد.
ممنون میشوم که دوستان در حل این مشکل و استفاده از دو صفحه login من را ر اهنمایی کنند.

fereshte22
شنبه 17 شهریور 1386, 18:08 عصر
کسی کمک نمیکند؟

m.hamidreza
شنبه 17 شهریور 1386, 22:06 عصر
من قبلا می خواستم با همین Authentication کار کنم اینقدر به error خوردم که اصلا پشیمون شدم ! آخر با Session ها نوشتم ، راحتتره ....
اگه css داشته باشی با دوتا login page ، همه ی css هات بهم میریزه ، اصلا نمیشه مدیریتش کرد !

Behrouz_Rad
شنبه 17 شهریور 1386, 22:20 عصر
اگه css داشته باشی با دوتا login page ، همه ی css هات بهم میریزه ، اصلا نمیشه مدیریتش کرد !
Authentication یک کمی کوچولو بد قلقه!
به دلایلی ناشناخته، ASP.NET همه چیز رو میخواد تصدیق هویت کنه! حتی تصاویر و فایل CSS رو!
قبلا یکی از دوستان همین مشکل رو مطرح کرد و بهش پاسخ دادم.
کافیه در تگ location در فایل Web.Config، نام پوشه ی تصاویر و فایل CSS رو به عنوان منابعی که نیاز به تصدیق هویت ندارند معرفی کنی.

موفق باشید

fereshte22
یک شنبه 18 شهریور 1386, 10:07 صبح
آقای راد من فقط یک پوشه تصاویر دارم که در خارج از پوشه admin قرار گرفته.
طبق راهنمایی شما به صورت زیر عمل کردم


<locationpath="images">
<system.web>
<authorization>
<allowusers="*" />
</authorization>
</system.web>
</location>


من این کد را هم در webconfig اصلی و هم در webconfig پوشه admin امتحان کردم ولی مشکلم حل نشد.
من همون طور که گفتم میخواهم دو تا صفحه login داشته باشم به همین خاطر در webconfig پوشه admin کد زیر را قرار دادم.(بدون تگ location



<system.web>
<authenticationmode="Forms">
<formsname="MYWEBAPP.ASPXAUTH"
loginUrl="login.aspx"
protection="All"
path="/"/>
</authentication>
<authorization>
<allowroles="Administrator"/>
<denyusers="*"/>
</authorization>
</system.web>


ودر webconfig اصلی



<locationpath="payment.aspx">
<system.web>
<authorization>
<denyusers="?" />
</authorization>
</system.web>
</location>
<system.web>
<authenticationmode="Forms">
<formsname="MYWEBAPP.ASPXAUTH"
loginUrl="login1.aspx"
protection="All"
path="/"/>
</authentication>
<authorization>
<allowusers="*"/>
</authorization>
</system.web>


ایا اصلا کاری که دارم انجام میدهم درسته؟(حتما هم میخواهم دو تا صفحه login داشته باشم
ممنون

m.hamidreza
یک شنبه 18 شهریور 1386, 14:26 عصر
قبلا یکی از دوستان همین مشکل رو مطرح کرد و بهش پاسخ دادم.

خودم بودم مهندس جون ! :چشمک:


من این کد را هم در webconfig اصلی و هم در webconfig پوشه admin امتحان کردم ولی مشکلم حل نشد.

پوشه ی image اگه خارج از admin هست : images/..
یه sample اینجوری من یادمه داشتم میگردم اگه پیداش کردم میزارم ...
http://barnamenevis.org/forum/showthread.php?t=70192

fereshte22
دوشنبه 19 شهریور 1386, 08:46 صبح
اقای m.hamidreza اگر sample مورد نظر را بگذارید که خیلی خوب میشود.

fereshte22
چهارشنبه 21 شهریور 1386, 12:30 عصر
سلام
راستش این مشکل من را خیلی کلافه کرده است.:عصبانی++:
من یه website ساده درست کردم بدون هیچ تصویری ولی بازهم مشکل حل نشد.
من این برنامه را اینجا گذاشتم اگه دوستان لطف کنند و یه نگاهی بهش بندازند کمک بزرگی به من کرده اند.
شاید جای دیگری اشتباه میکنم
(برنامه فقط شامل کدهای webconfig است)

m.hamidreza
چهارشنبه 21 شهریور 1386, 20:37 عصر
این چرا کد نداره ؟! :متفکر:

با session بنویس . . . این حالا حالا ها درد سر داره !

fereshte22
چهارشنبه 21 شهریور 1386, 21:49 عصر
سلام
خوب من از اونجایی که فکر کردم مشکل از iis است فقط کدهای webconfig را گذاشتم تا دوستان روی سیستمشون اجرا کنند و من مطمئن شوم مشکل از iis است و یا نه
(در فایل زیر کدهای login و global را هم گذاشتم)
در ضمن خوب من میبینم که دوستان مخصوصا آقای راد همیشه این روش را توصیه میکنند به همین دلیل یه جورایی دلم نمی یاد ازش استفاده نکنم ولی مثل اینکه ضررش بیشتر از فایده اش است.
ولی خوب اینقدر برنامه نویسان فعال توی این سایت هست که من امیدوارم مشکلم با کمک شما و بقیه دوستان از جمله آقای راد حل شود.

mr_mtc
پنج شنبه 22 شهریور 1386, 11:29 صبح
جانا سخن از زبان من! میگویی!

میشه بگی چی کار کنم تا از امکانات Login ASP.net2 به صورت Customize استفاده کنم
لطفا

ClaimAlireza
پنج شنبه 22 شهریور 1386, 11:56 صبح
من تاپیک شما رو دیر دیدم.

دوست عزیز این web.config رو ببین ....



<?xmlversion="1.0"?>
<!--
Note: As an alternative to hand editing this file you can use the
web admin tool to configure settings for your application. Use
the Website->Asp.Net Configuration option in Visual Studio.
A full list of settings and comments can be found in
machine.config.comments usually located in
\Windows\Microsoft.Net\Framework\v2.x\Config
-->
<configurationxmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<appSettings/>

<connectionStrings>
<addname="ConnectionString"connectionString="Data Source=ip;Initial Catalog=dbname;Integrated Security=True"providerName="System.Data.SqlClient"/>
</connectionStrings>


<system.web>
<httpRuntimemaxRequestLength="20000"executionTimeout="3600"></httpRuntime>

<customErrorsmode="Off"/>

<membershipdefaultProvider="manageIDMembershipSqlProvider"userIsOnlineTimeWindow="20">
<providers>
<removename="AspNetSqlMembershipProvider"/>
<addconnectionStringName="padidConnectionString"enablePasswordRetrieval="false"enablePasswordReset="true"requiresQuestionAndAnswer="true"applicationName="SecurityQuickStart"requiresUniqueEmail="true"passwordFormat="Hashed"name="manageIDMembershipSqlProvider"type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</membership>

<roleManagerenabled="true"defaultProvider="manageIDRoleManagerSqlProvider">
<providers>
<removename="AspNetSqlRoleProvider"/>
<addconnectionStringName="padidConnectionString"applicationName="SecurityQuickStart"name="manageIDRoleManagerSqlProvider"type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>

<authenticationmode="Forms">
<formsloginUrl="cpanel/Login.aspx"defaultUrl="cpanel/Login.aspx"cookieless="UseCookies"timeout="10080"/>
</authentication>

<authorization>
<allowusers="*"/>
</authorization>

</system.web>

<location path="Default.aspx">
<system.web>
<authorization>
<allow roles="administrator,user,manager"/>
<deny users="*"/>
</authorization>
</system.web>
</location>

</configuration>


من 9 ماه پیش با این membership,role خیلی ور رفتم آخرش درست شد.

الانم داره رو هاستم درست کار میکنه.

مشکلی داشتی بگو...