1.
public bool Login(string userName, string passwd, out string errorMessage)
{
errorMessage = "";
bool b = Membership.ValidateUser(userName, passwd);
if (b == true)
{
return true;
}
else
{
errorMessage = GetFailureText();
return false;
}
}
protected string GetFailureText()
{
MembershipUser myUser = Membership.GetUser(LoginControl.UserName);
if (myUser == null)
return "User email does not exist!";
else if (!myUser.IsApproved)
return "Your account has not been activated please check your email account for your activation email!";
else if (myUser.IsLockedOut)
return "Your account has been locked out because of a maximum number of incorrect login attempts. Please contact the system administrator to have your account unlocked.";
else
return LoginControl.FailureText;
}
///
//Windows
//
using System.Threading;
using System.Security.Principal;
using System.Security;
public bool Login(string userName, string passwd, out string errorMessage)
{
errorMessage = "";
bool b = Membership.ValidateUser(userName, passwd);
GenericIdentity iden = new GenericIdentity(userName, "typeAD,smartCard,Db");
string[] roles = { "Manager", "Administrator" };
try
{
GenericPrincipal prin = new GenericPrincipal(iden, roles);
System.Threading.Thread.CurrentPrincipal = prin;
}
catch (SecurityException e)
{
errorMessage = e.GetType().Name + " : Permission to set Principal is denied.";
return false;
}
if (b == true)
{
return true;
}
else
{
errorMessage = getLoginError(userName);
return false;
}
}
public void Logout()
{
GenericIdentity iden = new GenericIdentity(""); // set the user name = empty string ---- logout
GenericPrincipal prin = new GenericPrincipal(iden, null);
System.Threading.Thread.CurrentPrincipal = prin;
}
// tract the user -- security
IPrincipal threadPrincipal = Thread.CurrentPrincipal;
string m = threadPrincipal.Identity.Name; // get the name from GenericIdentity("name","typeAD")
bool bb = threadPrincipal.IsInRole("Administrator");
bool bbb = threadPrincipal.Identity.IsAuthenticated; // if name in GenericIdentity("name","typeAD") is empty ""
string mm = threadPrincipal.Identity.AuthenticationType; // get the typeAD from GenericIdentity("name","typeAD")