J'ai un formulaire de connexion dans Visual Studio C# et en voici une capture d'écran.Création de l'authentification Windows et de l'authentification SQL Server dans le formulaire de connexion
https://i.stack.imgur.com/uziUD.png
Mon but est de permettre à l'utilisateur de choisir de se connecter en utilisant l'authentification Windows, dans un lieu de travail que nous utilisons le réseau LAN ou en utilisant l'authentification SQL Server (nom d'utilisateur et mot de passe sont stockés dans le serveur -> sécurité -> connexion).
est le code ci-dessous jusqu'à présent:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data.Sql;
using System.Data.OleDb;
namespace Login_HouseKeeping_
{
public partial class Form1: Form
{
public Form1()
{
InitializeComponent();
}
// Connection string
string cs = @"Data Source = 172.28.40.19\CASINO2008R2; Initial catalog =GCVS2_DEV_GHR; Integrated Security = True;";
// Login click event
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "" || textBox2.Text == "")
{
MessageBox.Show("Please provide Username and Password");
return;
}
else
try
{
//Create sqlconnection
SqlConnection con = new SqlConnection(cs);
SqlCommand cmd = new SqlCommand(@"SELECT * FROM Logins WHERE Username = @username AND Password = @Password", con);
cmd.Parameters.AddWithValue("@username", textBox1.Text);
cmd.Parameters.AddWithValue("@Password", textBox2.Text);
con.Open();
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adapt.Fill(ds);
con.Close();
int count = ds.Tables[0].Rows.Count;
// if count equals to 1, then show frmMain form
if (count == 1)
{
MessageBox.Show("Login successful");
this.Hide();
frmMain fm = new frmMain();
fm.Show();
}
else
{
MessageBox.Show("Login failed");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
textBox2.PasswordChar = '*';
}
private void btn_Exit_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Je ne peux pas sembler trouver de nombreuses ressources sur la mise en œuvre de ces deux authentification dans mon login. Comment puis-je y parvenir?
EDIT:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void label2_Click(object sender, EventArgs e)
{
}
private void btn_Exit_Click(object sender, EventArgs e)
{
this.Close();
}
private void btn_Login_Click(object sender, EventArgs e)
{
var connStrBldr = new System.Data.SqlClient.SqlConnectionStringBuilder();
connStrBldr.DataSource = "172.28.40.19\CASINO2008R2";
connStrBldr.InitialCatalog = "GCVS2_DEV_GHR";
if (WindowsAuth)
{
connStrBldr.IntegratedSecurity = true;
}
else
{
connStrBldr.IntegratedSecurity = false;
connStrBldr.UserID = textBox1.Text;
connStrBldr.Password = textBox2.Text;
}
using (SqlConnection con = new SqlConnection(connStrBldr.ToString()))
{
con.Open();
//do your lookup on login here
}
}
private void WindowsAuth_CheckedChanged(object sender, EventArgs e)
{
}
private void SqlAuth_CheckedChanged(object sender, EventArgs e)
{
}
}
}
Quel est le problème? –
Le problème est que je ne peux pas comprendre comment avoir l'authentification Windows et l'authentification du serveur SQL dans ma connexion. –
Authentification Windows pour votre répertoire actif? –