What's new
  • This section is NOT for Console Modding Support or Queries.
    Please ensure any threads posted here are releases or guides as appropriate.
    If you require support, please post a new thread in Console Modding Support
    Thanks!

Tools NETLock FREE Open Source, Secure, and Minimal MySQL login system for your tool!

Did you find NETLock to be useful in one way or another?

  • Yes

    Votes: 4 100.0%
  • No

    Votes: 0 0.0%

  • Total voters
    4
XeCrash

XeCrash

C++, C# Coder/Support
Hidden Devils
Free Hoster Seasoned Veteran Programmer
Messages
691
Solutions
1
Reaction score
149
Points
300
Sin$
0
NETLock is a Project that I've been working on for a couple month's now to bring a Free secure and open source way to allow users to create a login system for their C# application in a simple, easy, and very customizable way with lots of help from me or the knowledge you maybe already have!
[Click here to view this link]

==This Update (Current Version: 3.2.3)==

THIS UPDATE: (+ = added | - = removed | x = bug fixs)
x - Fixed a bug where, if you had maintenance mode and free mode activated at the same time you could still login.

==Features==
- Tampering Detection for packet sniffing applications like but not limited to Wireshark, tcpdump, and Telerek's Fiddler
- Duplicate user check on registration
- Very Strong implementation of BCrypt hashing method with salts
- Admin Panel (Look at latest update log to find out more)
- Program authentication to database as a security measure before you can use any of the features in NETLock.
- Ban, Unban, and Delete Users.
- Ability to pick between Paid Registration that utilizes a licensing system via admin panel and the Free Registration which is the one I already demonstrated in the last video tutorial
- File Hash Checking (MD5)
- File Hash Calculator (MD5)
- Licensing
- Free Mode toggle
- Maintenance Mode toggle
- HWID Checking toggle
- Grab, Generate, Copy, and Delete Licenses from the DB
- Grab, Generate, Copy, and Delete tokens from the DB
- Organized code with easy to understand naming scheme!
- Very Easily Customizable!
- Easy to implement into application's new and already existing!

https://gyazo.com/db8dc500e021d16308f9655b5aa2afca
db8dc500e021d16308f9655b5aa2afca.png




NOTE: I only provide the code, database file and example application it's up to you to get a server and get phpmyadmin running on it. This is all my own open source work. Remember to change the connection string to fit your needs. The connection string is located under "internal class ConnectionMethods" its called MySqlConnection conn = new MySqlConnection("This is what you edit to fit your needs"); Example in the spoiler below.

Example: MySqlConnection conn = new MySqlConnection("Server=29.291.332.32; Uid=root; Pwd=; Database=7s;");
-Meaning of each identifier in the connection string-
Server: the IP address of your server that's running phpmyadmin
Uid: Username of the main account on phpmyadmin the default is "root"
Pwd: The password of the main account by default its usually isn't set to anything that's why I have it blank in the above example
Database: is the name of the database you'll be pulling and storing info to and from, I have it set to mass in the above example because that the name of the database I setup by default for the DLL NETLock to use.

Video Tutorial (Working with Version 2.0.1.0 Free Registration Only) (Paid registration tut coming soon)
 
Last edited:
XeCrash

XeCrash

C++, C# Coder/Support
Hidden Devils
Free Hoster Seasoned Veteran Programmer
Messages
691
Solutions
1
Reaction score
149
Points
300
Sin$
0
The easiest way of implementing this?

NOTE: Disregard this, it's for an older version of the project.
1. get a vps or server that is setup to run a MySQL databse otherwise know as phpmyadmin

2. Change the connection string follow the example above

3. in phpmyadmin import the database from the file in the github link

4. Keep the imported database named "mass"

5. Compile the solution for netlock the one with the ExampleProject and the NETLock Dll in one as release.

6. Make a new project or add to your existing one a reference to the NETlock dll which you should have just compiled in the step above and just copy the MySql.Data.dll to your projects debug and release folder and then the programs real folder that you'll be running it from.

7. For implementing it into your own program its easy its in the example application but here you go. Look below.

Code:
using NETLock;
This is to reference the dll ^

Code:
LoginResponse YourVar = new LoginResponse();
if(YourVar.Login(username, password))
{
//Login Successful
}
else
{
//Login Failed
}
This is to login ^

Code:
            RegisterResponse YourVar2 = new RegisterResponse();
            if(YourVar2.Register(username, password))
            {
                //Register Success
               //Do something
            }
            else
            {
                //Register Failed
                //Do something
            }
This is to register ^

Hope that helps
 
Last edited:
thementaldj27

thementaldj27

Enthusiast
Messages
65
Reaction score
5
Points
55
Sin$
0
1. get a vps or server that is setup to run a MySQL databse otherwise know as phpmyadmin

2. Change the connection string follow the example above

3. in phpmyadmin import the database from the file in the github link

4. Keep the imported database named "mass"

5. Compile the solution for netlock the one with the ExampleProject and the NETLock Dll in one as release.

6. Make a new project or add to your existing one a reference to the NETlock dll which you should have just compiled in the step above and just copy the MySql.Data.dll to your projects debug and release folder and then the programs real folder that you'll be running it from.

7. For implementing it into your own program its easy its in the example application but here you go. Look below.

Code:
using NETLock;
This is to reference the dll ^

Code:
LoginResponse YourVar = new LoginResponse();
if(YourVar.Login(username, password)
{
//Login Successful
}
else
{
//Login Failed
}
This is to login ^

Code:
            RegisterResponse YourVar2 = new RegisterResponse();
            if(YourVar2.Register(username, password)
            {
                //Register Success
               //Do something
            }
            else
            {
                //Register Failed
                //Do something
            }
This is to register ^

Hope that helps


Thank you for this, I will take a look at this. I think others will appreciate the help too.
 
thementaldj27

thementaldj27

Enthusiast
Messages
65
Reaction score
5
Points
55
Sin$
0
I have followed the instructions but I have no server I.P because of it being free hosting instead of an actual VPS. is there anyway I can insert users into MYSQL (PHPMyAdmin)

I edited the example program and change the connection string to the server that I had which I did by resolving the variable for localhost in SQL on the page, I used that but whenever i try to register a user, it doesn't work. Any help?
 
XeCrash

XeCrash

C++, C# Coder/Support
Hidden Devils
Free Hoster Seasoned Veteran Programmer
Messages
691
Solutions
1
Reaction score
149
Points
300
Sin$
0
I have followed the instructions but I have no server I.P because of it being free hosting instead of an actual VPS. is there anyway I can insert users into MYSQL (PHPMyAdmin)

I edited the example program and change the connection string to the server that I had which I did by resolving the variable for localhost in SQL on the page, I used that but whenever i try to register a user, it doesn't work. Any help?
Can you tell me more about who you have the VPS with and explain what you did a little better I didn't quite understand it the way explained it
 
thementaldj27

thementaldj27

Enthusiast
Messages
65
Reaction score
5
Points
55
Sin$
0
Can you tell me more about who you have the VPS with and explain what you did a little better I didn't quite understand it the way explained it


well its not a VPS, its a web server that runs PHPMyAdmin - 000webhost.
The PHPMyAdmin works great but it doesn't have the server I.P
 
XeCrash

XeCrash

C++, C# Coder/Support
Hidden Devils
Free Hoster Seasoned Veteran Programmer
Messages
691
Solutions
1
Reaction score
149
Points
300
Sin$
0
well its not a VPS, its a web server that runs PHPMyAdmin - 000webhost.
The PHPMyAdmin works great but it doesn't have the server I.P
000webhost doesn't allow outside connections to there Phpmyadmin servers unless you have a paid version of there service
 
Cakes

Cakes

お前はもう死んでいる
VIP
Retired
Mythical Veteran Platinum Record End of the Year 2017
Messages
20,705
Reaction score
20,272
Points
3,870
Sin$
-7
This is a neat system for basic usage, but in general it's extremely easy to bypass if the housing application is not properly protected.
 
XeCrash

XeCrash

C++, C# Coder/Support
Hidden Devils
Free Hoster Seasoned Veteran Programmer
Messages
691
Solutions
1
Reaction score
149
Points
300
Sin$
0
This is a neat system for basic usage, but in general it's extremely easy to bypass if the housing application is not properly protected.
Very easy but as i said it's just for your free applications at least that's what i intended it for. I mean who really wants to bypass something that's meant to be free anyways
 
Cakes

Cakes

お前はもう死んでいる
VIP
Retired
Mythical Veteran Platinum Record End of the Year 2017
Messages
20,705
Reaction score
20,272
Points
3,870
Sin$
-7
Very easy but as i said it's just for your free applications at least that's what i intended it for. I mean who really wants to bypass something that's meant to be free anyways
That's true, but I thought I'd mention it anyway. I didn't view the source thoroughly, but I assume you've taken proper precautions against SQL injections, XSS, etc.?
 
ImOx

ImOx

(^._.^)ノ
Retired
Programmer MotM Platinum Record
Messages
9,961
Reaction score
2,963
Points
2,180
Sin$
0
Very easy but as i said it's just for your free applications at least that's what i intended it for. I mean who really wants to bypass something that's meant to be free anyways
But why would there be (an annoying) thing like this in a free application?
:o
 
XeCrash

XeCrash

C++, C# Coder/Support
Hidden Devils
Free Hoster Seasoned Veteran Programmer
Messages
691
Solutions
1
Reaction score
149
Points
300
Sin$
0
This is a neat system for basic usage, but in general it's extremely easy to bypass if the housing application is not properly protected.
A more secure way to implement this would be using TCP socketing and connecting to a server that having a listener running and just send the essential information to it like username and password and have it do the insertion to the database that would eliminate the need to obfuscate the connection string and you wouldn't be storing sensitive information in the application at all such as server address and login information 
But why would there be (an annoying) thing like this in a free application?
:o
There are plenty of free applications out there that have a login system and this could be added on to make things such as differentiating user levels all 1 - 7 1 being users 7 being developers or admins and that is pretty easily implemented as I will still be adding onto this project I have many ideas!
 
XeCrash

XeCrash

C++, C# Coder/Support
Hidden Devils
Free Hoster Seasoned Veteran Programmer
Messages
691
Solutions
1
Reaction score
149
Points
300
Sin$
0
That's true, but I thought I'd mention it anyway. I didn't view the source thoroughly, but I assume you've taken proper precautions against SQL injections, XSS, etc.?
Yes I have a process check on each login and register request that checks for most of the applications that allow things such as packet sniffing and injection.
 
XeCrash

XeCrash

C++, C# Coder/Support
Hidden Devils
Free Hoster Seasoned Veteran Programmer
Messages
691
Solutions
1
Reaction score
149
Points
300
Sin$
0
But why would there be (an annoying) thing like this in a free application?
:o
Just crushed my dreams Ox :frown:
Just kidding lmao I see where you're coming from be I will be adding onto the project to support more than registering and logging in!.
 
ImOx

ImOx

(^._.^)ノ
Retired
Programmer MotM Platinum Record
Messages
9,961
Reaction score
2,963
Points
2,180
Sin$
0
Just crushed my dreams Ox :frown:
Just kidding lmao I see where you're coming from be I will be adding onto the project to support more than registering and logging in!.
Your ideas sound cool, don't give up with it and make it really useful so it's nice.
 
Cakes

Cakes

お前はもう死んでいる
VIP
Retired
Mythical Veteran Platinum Record End of the Year 2017
Messages
20,705
Reaction score
20,272
Points
3,870
Sin$
-7
A more secure way to implement this would be using TCP socketing and connecting to a server that having a listener running and just send the essential information to it like username and password and have it do the insertion to the database that would eliminate the need to obfuscate the connection string and you wouldn't be storing sensitive information in the application at all such as server address and login information
You could increase security a lot by having a server-side counterpart to the setup. For validating and handling requests, and preventing the application from needing to establish a connection with the MYSQL server directly.
 
Top Bottom
Login
Register