Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.IO;
- using System.Xml;
- using System.Xml.Serialization;
- using System.Security.Cryptography;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- List<User> users;
- XmlSerializer serializer = new XmlSerializer(typeof(List<User>));
- string filename = "Users.xml";
- // Get the current user list, or initialize a new list.
- if (File.Exists(filename))
- {
- using (Stream stream = File.Open(filename, FileMode.Open))
- {
- users = (List<User>)serializer.Deserialize(stream);
- }
- }
- else
- {
- users = new List<User>();
- }
- // Create a new User
- User newUser = CreateUser();
- users.Add(newUser);
- // Save the users to the file again.
- using (Stream stream = File.Open(filename, FileMode.OpenOrCreate))
- {
- serializer.Serialize(stream, users);
- }
- // Attempt Login
- User loginUser = LoginUser();
- if (users.Contains(loginUser))
- {
- Console.WriteLine("Authenticated");
- }
- else
- {
- Console.WriteLine("Invalid Login");
- }
- }
- private static User CreateUser()
- {
- Console.WriteLine("Create User");
- Console.Write("Username: ");
- string username = Console.ReadLine();
- Console.Write("Password: ");
- string password = Console.ReadLine();
- return new User(username, SHA1(password));
- }
- private static User LoginUser()
- {
- Console.WriteLine("Login");
- Console.Write("Username: ");
- string username = Console.ReadLine();
- Console.Write("Password: ");
- string password = Console.ReadLine();
- return new User(username, SHA1(password));
- }
- private static string SHA1(string input)
- {
- var provider = SHA1CryptoServiceProvider.Create();
- byte[] hash = provider.ComputeHash(
- Encoding.Default.GetBytes(input));
- return Convert.ToBase64String(hash);
- }
- }
- public class User : IEquatable<User>
- {
- public string Username
- {
- get;
- set;
- }
- public string Password
- {
- get;
- set;
- }
- public User()
- {
- }
- public User(string username, string password)
- {
- this.Username = username;
- this.Password = password;
- }
- #region IEquatable<User> Members
- public bool Equals(User other)
- {
- return (this.Username == other.Username)
- && (this.Password == other.Password);
- }
- #endregion
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement