Jump to content

cbox


Recommended Posts

Posted (edited)

For awhile I've wanted to implement a system that forces users to login to programs released on iBotModz. Entering actual login info seemed to risky to code for the database info would have been attached to every program. I then saw the system used on TheBotNet. You don't ever have to login to any program, but it somehow knows who you are.

 

That system is now on iBotModz. This system logs your username, post count, rep and group ID. Program makers then can use this to limit their applications to only VIP or only to users above 10 REP and 100 posts. The possibilities are endless. The system takes your IP and uses it to match towards an account which then is sent back to your program. So you can create dynamic programs sayings "Hello $username. If anyone decides to use this they can implement it via a button click, or forced on form load. This example gives an intro with no post count requirement.

 

pre.pngpost.png

 

This is before you do anything. On a real example, it might say "200 Posts and 10 Rep needed" Then you click "Authorize" and wait a few seconds. Now it has grabbed my post count, username and rep. Now you can do simple if statements to determine if that user is allowed to your program.

 

Now for some source code.

 

           /*
            * Allowed User Groups to post, edit this yourself
            * Remove the ones that you DONT want to use your program
            * For this demo, all the groups are there
            * 
            * The ones that are missing are Bots,
            * Guests and some old usergroups that are hidden
            */
       ArrayList aug = new ArrayList();
       aug.Add(1); //Validating
       aug.Add(3); //Members
       aug.Add(4); //Owner
       aug.Add(5); //Banned
       aug.Add(7); //Sub Admins
       aug.Add(; //VIP
       aug.Add(9); //Global Mods
       aug.Add(10); //GFX Team
       aug.Add(12); //Retired Staff
       aug.Add(14); //Members+
       aug.Add(15); //Donors
       aug.Add(16); //Donors+

       //These are the the levels of which you want for posts and REP
       int minPosts = 0;
       int minRep = 0;

           //The client to download the string, which contains all login info
           WebClient client = new WebClient();
           string info = client.DownloadString("http://www.ibotmodz.net/index.php/prog/api");
           client.Dispose();

           //Check if website online or not
           if (String.IsNullOrEmpty(info))
               MessageBox.Show("iBotModz is offline");

               //Gathering the 4 variables
               string user = info.Substring((info.IndexOf("[user]") + 6), ((info.IndexOf("[/user]") - (info.IndexOf("[user]") + 6))));

               //Check if guest
               if (String.IsNullOrEmpty(user))
               {
                   MessageBox.Show("Please become a member on iBotModz.net." + Environment.NewLine + Environment.NewLine + "If you are a member....Make a post" + Environment.NewLine + "Without using the quick reply ");
                   Environment.Exit(0);
               }
               int posts = Convert.ToInt32(info.Substring((info.IndexOf("[posts]") + 7), ((info.IndexOf("[/posts]") - (info.IndexOf("[posts]") + 7)))));
               int rep = Convert.ToInt32(info.Substring((info.IndexOf("[rep]") + 5), ((info.IndexOf("[/rep]") - (info.IndexOf("[rep]") + 5)))));
               int groupID = Convert.ToInt32(info.Substring((info.IndexOf("[groupid]") + 9), ((info.IndexOf("[/groupid]") - (info.IndexOf("[groupid]") + 9)))));

               //Check for posts
               if (minPosts > posts)
               {
                   MessageBox.Show("You need more posts to use this program.");
                   this.Close();
               }
               //Check for REP level
               if (minRep > rep)
               {
                   MessageBox.Show("You need more REP to use this program.");
                   this.Close();
               }
               //Check for memberID
               if (groupID == 0)
                   MessageBox.Show("Sorry, you don't have a usergroup.");

               int flag = 0; // ((0 = failed)) ((1 = passed))
               //This will go through each allowed ID, so lets hope we are in here
               foreach (int i in aug)
               {
                   if (groupID == i)
                   {
                       //Yes we found it
                       //Debug.WriteLine(groupID + " passed becuase it was equal to " + i);
                       flag = 1;
                       break;
                   }
                   else
                   {
                       //so far theres nothing, keep going
                       flag = 0;
                       //Debug.WriteLine(groupID + " failed becuase it was equal to " + i);
                   }
               }
           //Check if passed or not
           switch (flag)
           {
               case 1: //Login passed
                   break;
               case 0: //Login Failed
                   this.Close();
                   break;
           }

 

Its commented, so I'm not going to explain it.

 

You may download the full source

ibmAuthSource.rar

 

The example program.

ibmAuth.exe

 

Or the AUTH image.

ibmAUTH.png

 

If you need to post to generate your record, and don't want to spam some random topic, use this topic. Otherwise post normally. http://www.ibotmodz.net/forum/index.php?/topic/15948-login-system-test/page__pid__103350__st__20entry103350test/page__pid__103350__st__20entry103350

Edited by iBotPeaches
Updated on August 21, 2009
  • Like 5
Posted
Wow very nice. Great addition now I'm finally back on my home PC after 2 months of on the laptop. Back to my old hardware and looking to code some new things will be sure to implement this :)
Posted (edited)

I just tried to use it and it gave me this error...

http://i395.photobucket.com/albums/pp33/BL4CKXHAWK/iBotModzError.png

Apparently the input String is not in the correct format.

 

Is it because i need to login to the site first or what?

Edited by BL4CKXHAWK
Posted (edited)

Hey it Works Now! Thanks Peaches!

 

http://i395.photobucket.com/albums/pp33/BL4CKXHAWK/Itworks.png

 

EDIT: Peaches, You need to program the window to be fixed and nonresizable because it looks like this when you first open it up. The bottom one needs to look like the top one.

 

http://i395.photobucket.com/albums/pp33/BL4CKXHAWK/FixWindow-1.png

Edited by BL4CKXHAWK
Posted
Yeah that stupid example program. I just wanted people to get an idea from the screenshots and source code then implement their own idea. That example app was merely an example, however I will be fixing the numerous bugs with it in the next day or two and update the main download.
Posted (edited)

wow this could be handy for obtaining users, if we had some decent custom programs.

 

Like imagine this, when there was no CON resigner, and if we had one.

 

 

edit***

 

 

post-67-125060430172_thumb.jpg

 

Is this a firewall or security issue?

Edited by Curtis
Guest
This topic is now closed to further replies.
×
×
  • Create New...