<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Πρώτα Βήματα - Web Development</title><link>https://www.dotnetzone.gr:443/cs/forums/75/ShowForum.aspx</link><description>Ολα τα θέματα που σας απασχολούν σχετικά με ASP, ASP.NET αν τώρα επιχειρείτε να φτιάξετε την πρώτη σας σελίδα.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Locking the database.</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43755.aspx</link><pubDate>Tue, 29 Jul 2008 05:23:24 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43755</guid><dc:creator>epp1123</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43755.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=75&amp;PostID=43755</wfw:commentRss><description>Χρησιμοποιώ ένα πεδίο στη βάση, το οποίο ονομάζεται isLoggedIn, και αν είναι true δεν τον αφήνει να μπει από άλλο υπολογιστή. Βέβαια στην περίπτωση που πέσει το ρεύμα, η κάτι γίνει, και δεν κάνει σωστό logout για να πάρει το πεδίο την τιμή false, δεν ξέρω τι να κάνω.&lt;br&gt;&lt;br&gt;Το membership provider τον έφτιαξα και είναι custom. Δικό μου δημιούργημα 100%.&lt;br&gt;</description></item><item><title>Απ: Locking the database.</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43753.aspx</link><pubDate>Tue, 29 Jul 2008 05:00:11 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43753</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43753.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=75&amp;PostID=43753</wfw:commentRss><description>&lt;P&gt;Γιατί? Πως είσαι σίγουρος ότι ο χρήστης δεν δοκίμασε απλά να συνδεθεί από άλλο υπολογιστή? Ή ότι δεν έπεσε η σύνδεση του και προσπαθεί τώρα να συνδεθεί με νέα σύνδεση και συνεπώς άλλο IP? &lt;/P&gt;
&lt;P&gt;Αν τα έχεις σκεφτεί αυτά, νομίζω ο καλύτερος τρόπος είναι να φτιάξεις ένα δικό σου provider ο οποίος θα κληρονομεί από τον SqlMembershipProvider και θα κάνει μόνο override την ValidateUser. Εκεί μέσα μπορείς να ελέγξεις αν ο χρήστης είναι ήδη online ή όχι, π.χ.&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;class&lt;/SPAN&gt; MySqlMembershipProvider:SqlMembershipProvider&lt;BR&gt;{&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;override&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;bool&lt;/SPAN&gt; ValidateUser(&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;string&lt;/SPAN&gt; username, &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;string&lt;/SPAN&gt; password)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&lt;/SPAN&gt; (&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;base&lt;/SPAN&gt;.GetUser(username, &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;false&lt;/SPAN&gt;).IsOnline)&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;false&lt;/SPAN&gt;;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;base&lt;/SPAN&gt;.ValidateUser(username, password);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;FONT size=2 face=Tahoma&gt;Έτσι μπορείς να κρατήσεις τις σελίδες σου όπως είναι, αν και καλό θα είναι να αλλάξεις το μήνυμα που δείχνεις στο χρήστη όταν αποτυγχάνει το login. Αν χρησιμοποιείς το login control, αυτό γίνεται στο LoginError event:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;protected&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;void&lt;/SPAN&gt; Login1_LoginError(&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;object&lt;/SPAN&gt; sender, EventArgs e)&lt;BR&gt;{&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&lt;/SPAN&gt; (Membership.GetUser(Login1.UserName,&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;false&lt;/SPAN&gt;).IsOnline)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Login1.FailureText &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:#666666;FONT-FAMILY:Courier New;BACKGROUND-COLOR:#e4e4e4;"&gt;"You can't login right now. Please wait"&lt;/SPAN&gt;;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Login1.FailureText &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:#666666;FONT-FAMILY:Courier New;BACKGROUND-COLOR:#e4e4e4;"&gt;"Incorrect username or password"&lt;/SPAN&gt;;&lt;BR&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description></item><item><title>Απ: Locking the database.</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43736.aspx</link><pubDate>Mon, 28 Jul 2008 19:25:24 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43736</guid><dc:creator>epp1123</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43736.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=75&amp;PostID=43736</wfw:commentRss><description>Ναι να μην μπορεί να κάνει login από άλλον υπολογιστή, αυτό εννοώ&lt;br&gt;</description></item><item><title>Απ: Locking the database.</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43703.aspx</link><pubDate>Sat, 26 Jul 2008 16:54:13 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43703</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43703.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=75&amp;PostID=43703</wfw:commentRss><description>&lt;P&gt;Πράγματι, τί εννοείς? Το να τροποποιεί μόνο ένας χρήστης τη φορά τη βάση μου φαίνεται υπερβολικά .... υπερβολικό.&amp;nbsp;Όλα τα web sites φτιάχνονται για να χρησιμοποιηθούν από πολλούς χρήστες και θα πρέπει να σχεδιάζονται έτσι ώστε ούτε να απαιτούν την αποκλειστική χρήση ούτε να επηρεάζονται όταν δουλεύουν πολλοί χρήστες μαζί.&lt;/P&gt;
&lt;P&gt;Μήπως εννοείς να μην μπορεί κάποιος να κάνει login δεύτερη φορά αν δεν έχει ήδη κάνει logout?&lt;/P&gt;</description></item><item><title>Απ: Locking the database.</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43694.aspx</link><pubDate>Fri, 25 Jul 2008 23:35:18 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43694</guid><dc:creator>dStellakis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43694.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=75&amp;PostID=43694</wfw:commentRss><description>&lt;P&gt;Τι ακριβώς εννοείς όταν λες "locking";&lt;/P&gt;
&lt;P&gt;Ο membership provider θα σου δώσει την δυνατότητα να ξέρεις ποιός χρήστης είναι logged in στην εφαρμογή σου (και αν υλοποίησεις και role provider και τι δικαιώματα έχει) και να υποστηρίξεις λειτουργίες login, logoff, change password κλπ.&lt;/P&gt;
&lt;P&gt;Επίσης, σε συνδυασμό με το authorization και το authentication του web.config θα μπορείς να αποτρέπεις την πρόσβαση σε χρήστες που δεν είναι logged in στο σύστημα σου ή που δεν έχουν συγκεκριμένους ρόλους.&lt;/P&gt;
&lt;P&gt;Αν με locking εννοεις το να επιτρέπεις μονο ενα χρήστη την φορά να αλλάζει τα δεδομένα της βάσης σου, τότε αυτό είναι κάτι που θα χρειαστεί να υλοποιήσεις μόνος σου, με βάση το ακριβώς θέλεις να κάνει το σύστημα σου.&lt;/P&gt;
&lt;P&gt;Δημοσθένης Στελλάκης&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Locking the database.</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43686.aspx</link><pubDate>Fri, 25 Jul 2008 21:27:14 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43686</guid><dc:creator>epp1123</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43686.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=75&amp;PostID=43686</wfw:commentRss><description>&lt;div align="justify"&gt;Καλησπέρα, τι κάνετε; &lt;br&gt;&lt;br&gt;Έχω μία ερώτηση κρίσεως η οποία λέει το εξής:&lt;br&gt;&lt;br&gt;Έστω ότι καταφέρνω και φτιάχνω τον custom membership provider, και δουλέψει. Με την βάση τι γίνεται, μετά το επιτυχημένο login του χρήστη; Θα πρέπει να κάνω κάποιο lock για να αντιμετωπίσω κάποιο πιθανό concurrency, ή αυτά τα κάνει μόνο του η asp.net με κάποιον τρόπο, ή δε χρειάζεται καθόλου να γίνει κάποιου τέτοιου είδους ενέργεια, είτε από εμένα προγραμματιστικά είτε από το framework;&lt;br&gt;&lt;/div&gt;</description></item></channel></rss>