Dear Freinds
i have used someone else code and modified according to my need. It works and run smoothly. here login name and password authenticate with window domain as we used our login id and password for login.
Now after successful running of this code, I have one issue that
How to get the value for of username in order to store in my database table
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Runtime.InteropServices;
using System.Collections.Specialized;
using System.Data.SqlClient;
using System.Net;
public partial class Login : System.Web.UI.Page
{
private DateTime currenttimedate;
private string usernameID;
private string serverID;
private string stored;
private SqlCommand SqlLogin;
private SqlConnection hookUp;
[DllImport("ADVAPI32.dll", EntryPoint = "LogonUserW", SetLastError = true, CharSet = CharSet.Auto)]
public static extern bool LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
public static string GetDomainName(string usernameDomain)
{
if (string.IsNullOrEmpty(usernameDomain))
{
throw (new ArgumentException("Argument can't be null.", "usernameDomain"));
}
if (usernameDomain.Contains("\\"))
{
int index = usernameDomain.IndexOf("\\");
return usernameDomain.Substring(0, index);
}
else if (usernameDomain.Contains("@"))
{
int index = usernameDomain.IndexOf("@");
return usernameDomain.Substring(index + 1);
}
else
{
return "";
}
}
public static string GetUsername(string usernameDomain)
{
if (string.IsNullOrEmpty(usernameDomain))
{
throw (new ArgumentException("Argument can't be null.", "usernameDomain"));
}
if (usernameDomain.Contains("\\"))
{
int index = usernameDomain.IndexOf("\\");
return usernameDomain.Substring(index + 1);
}
else if (usernameDomain.Contains("@"))
{
int index = usernameDomain.IndexOf("@");
return usernameDomain.Substring(0, index);
}
else
{
return usernameDomain;
}
}
public string GetIP4Address()
{
string IP4Address = String.Empty;
foreach (IPAddress IPA in Dns.GetHostAddresses(System.Net.Dns.GetHostName()))
{
if (IPA.AddressFamily.ToString() == "InterNetwork")
{
IP4Address = IPA.ToString();
break;
}
}
return IP4Address;
}
protected void btnLogin_Click(object sender, EventArgs e)
{
string domainName = GetDomainName(txtUserName.Text);
string userName = GetUsername(txtUserName.Text);
IntPtr token = IntPtr.Zero;
bool result = LogonUser(userName, domainName, txtPassword.Text, 2, 0, ref token);
if (result)
{
if (string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
{
FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, false);
}
else
{
FormsAuthentication.SetAuthCookie(txtUserName.Text, false);
Response.Redirect("Default.aspx");
}
}
else
{
Response.Write("Invalid username or password.");
}
usernameID += txtUserName.Text;
serverID += Request.ServerVariables["REMOTE_USER"];
string ipaddress = GetIP4Address();
currenttimedate= DateTime.Now;
hookUp = new SqlConnection("Server=localhost\\Sqlexpress; Database=TPM_ThermoformingParco;" + "Integrated Security=True");
stored = "insert into userlogin values(@username,@servername, @machineip, @authenticationfetchdatetime)";
SqlLogin = new SqlCommand(stored, hookUp);
SqlLogin.Parameters.Add(new SqlParameter("@username", SqlDbType.NVarChar, 50));
SqlLogin.Parameters["@username"].Value = usernameID;
SqlLogin.Parameters.Add(new SqlParameter("@servername", SqlDbType.NVarChar, 50));
SqlLogin.Parameters["@servername"].Value = serverID;
SqlLogin.Parameters.Add(new SqlParameter("@machineip", SqlDbType.NVarChar, 50));
SqlLogin.Parameters["@machineip"].Value = ipaddress;
SqlLogin.Parameters.Add("@authenticationfetchdatetime", currenttimedate);
hookUp.Open();
SqlLogin.ExecuteNonQuery();
hookUp.Close();
}
}