So ... Here is my login :) You may or may not like it, but so ... This is my decision.
private void FRIIB_Load(object sender, EventArgs e) { try { QueryBuilder.insql = Crypto.DecryptStringAES(Model.DecryptRegisteryValue("inSQL"), "inSQL"); } catch (Exception exc) { MessageBox.Show(exc.Message); } // getting connection string if (!(new Func<bool>(() => { Func<bool> l = null; l = () => { using (LoginForm loginDialog = new LoginForm()) { loginDialog.ShowDialog(); loginDialog.Focus(); if (loginDialog.IsExit) return false; else if (loginDialog.IsAuthorized) return true; else return l(); } }; return l(); } )() )) Close(); else w8( () => LoadData() ); }
and here is some description for the code:
private void w8(Action action) { Cursor.Current = Cursors.WaitCursor; Application.DoEvents(); action(); Cursor.Current = Cursors.Default; } Public Class DamnLogin Private db As FRIIB Public Sub New(ByVal connection As String) db = New FRIIB(connection) End Sub Public Function Login(ByVal name As String, ByVal password As String) As Boolean Dim GetUser = _ From u In db.GetTable(Of [User])() _ Where u.Name = name _ And u.Password = password _ Select u Return GetUser.Count = 0 End Function End Class let Login usename password = new LinqBase.DamnLogin(insql) |> fun damn -> not <| damn.Login(usename,password)
and login form
public partial class LoginForm : Form { bool isAuthorized; bool exit; public bool IsAuthorized { get { return this.isAuthorized; } } public bool IsExit { get { return this.exit; } } public LoginForm() { isAuthorized = false; exit = false; InitializeComponent(); } private void Close_Click(object sender, EventArgs e) { exit = true; this.Close(); } private void LoginButton_Click(object sender, EventArgs e) { if (Login.Text != "") { if (Login.Text.ToUpper() == "ADMIN") { if (Password.Text == Crypto.DecryptStringAES(Model.DecryptRegisteryValue("Password"), "Password")) isAuthorized = true; } else { if (QueryBuilder.Login(Login.Text, Password.Text)) isAuthorized = true; } } this.Close(); } }
Cynede
source share