permanent,user,login,session,asp.net

Mert 8/7/2016 0

Permanent User Login Session In ASP.NET This code shows how to create a permanent user login session in ASP.NET.

Html
 <authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" 
             protection="All"
             timeout="1"
             name=".USERLOGINCONTROLAUTH"
             path="/"
             requireSSL="false"
             slidingExpiration="true"
             defaultUrl="~/Home/Index"
             cookieless="UseDeviceProfile"
             enableCrossAppRedirects="false"/></authentication> 

The default values are described below: loginUrl points to your application's custom logon page. You should place the logon page in a folder that requires Secure Sockets Layer (SSL). This helps ensure the integrity of the credentials when they are passed from the browser to the Web server. protection is set to All to specify privacy and integrity for the forms authentication ticket. This causes the authentication ticket to be encrypted using the algorithm specified on the machineKey element, and to be signed using the hashing algorithm that is also specified on the machineKey element. timeout is used to specify a limited lifetime for the forms authentication session. The default value is 30 minutes. If a persistent forms authentication cookie is issued, the timeout attribute is also used to set the lifetime of the persistent cookie. name and path are set to the values defined in the application's configuration file. requireSSL is set to false. This configuration means that authentication cookies can be transmitted over channels that are not SSL-encrypted. If you are concerned about session hijacking, you should consider setting requireSSL to true. slidingExpiration is set to true to enforce a sliding session lifetime. This means that the session timeout is periodically reset as long as a user stays active on the site. defaultUrl is set to the Default.aspx page for the application. cookieless is set to UseDeviceProfile to specify that the application use cookies for all browsers that support cookies. If a browser that does not support cookies accesses the site, then forms authentication packages the authentication ticket on the URL. enableCrossAppRedirects is set to false to indicate that forms authentication does not support automatic processing of tickets that are passed between applications on the query string or as part of a form POST.

C#
 public sealed class CookieHelper
{
    private HttpRequestBase _request;
    private HttpResponseBase _response;

    public CookieHelper(HttpRequestBase request, 
	HttpResponseBase response)
	{
		_request = request;
		_response = response;
	}

    //[DebuggerStepThrough()]
    public void SetLoginCookie(string userName,string password,bool isPermanentCookie)
    {
        if (_response != null)
        {
            if (isPermanentCookie)
            {
                FormsAuthenticationTicket userAuthTicket = 
                	new FormsAuthenticationTicket(1, userName, DateTime.Now, 
                	DateTime.MaxValue, true, password, FormsAuthentication.FormsCookiePath);
                string encUserAuthTicket = FormsAuthentication.Encrypt(userAuthTicket);
                HttpCookie userAuthCookie = new HttpCookie
                	(FormsAuthentication.FormsCookieName, encUserAuthTicket);
                if (userAuthTicket.IsPersistent) userAuthCookie.Expires = 
						userAuthTicket.Expiration;
                userAuthCookie.Path = FormsAuthentication.FormsCookiePath;
                _response.Cookies.Add(userAuthCookie);
            }
            else
            {
                FormsAuthentication.SetAuthCookie(userName, isPermanentCookie);
            }
        }
    }
} 


This function is used in login page or control on the click of login button.
In the attached sample project, the following function is written in
AccountController class. This function validates the login of the user and
then add a permanent form authentication ticket to the browser.

private bool Login(string userName, string password,bool rememberMe) { if (Membership.ValidateUser(userName, password)) { CookieHelper newCookieHelper = new CookieHelper(HttpContext.Request,HttpContext.Response); newCookieHelper.SetLoginCookie(userName, password, rememberMe); return true; } else { return false; } }



Report Bug

Please Login to Report Bug

Reported Bugs

Comments

Please Login to Comment

Comments