コード例 #1
0
        public static void SignOn(this HttpContextBase context, UserProfile profile, bool remeberMe = true)
        {
            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(profile.PID, true, Settings.Default.UserTimeoutInMinutes);
            String loginToken = FormsAuthentication.Encrypt(ticket);

            context.Response.SetCookie(new HttpCookie(FormsAuthentication.FormsCookieName, loginToken));
            context.ClearCache();
            context.SetCacheValue("userProfile", profile);

            HttpCookie cookie = new HttpCookie("loginToken", loginToken);

            cookie.Expires = DateTime.Now.AddMinutes(Settings.Default.UserTimeoutInMinutes);
            context.Response.SetCookie(cookie);

            if (remeberMe)
            {
                cookie         = new HttpCookie("userID", profile.PID);
                cookie.Expires = DateTime.Now.AddDays(14);
            }
            else
            {
                cookie         = new HttpCookie("userID", "");
                cookie.Expires = DateTime.Now.AddHours(24);
            }
            context.Response.SetCookie(cookie);

            //switch ((Naming.RoleID)profile.CurrentUserRole.RoleID)
            //{
            //    case Naming.RoleID.Administrator:
            //    case Naming.RoleID.Assistant:
            //    case Naming.RoleID.Coach:
            //    case Naming.RoleID.FreeAgent:
            //        cookie = new HttpCookie("userID", profile.PID);
            //        if (remeberMe)
            //        {
            //            cookie.Expires = DateTime.Now.AddDays(14);
            //        }
            //        else
            //        {
            //            cookie.Expires = DateTime.Now.AddHours(24);
            //        }
            //        context.Response.SetCookie(cookie);
            //        break;
            //    case Naming.RoleID.Learner:
            //        if (remeberMe)
            //        {
            //            cookie = new HttpCookie("userID", profile.PID);
            //            cookie.Expires = DateTime.Now.AddDays(14);
            //        }
            //        else
            //        {
            //            cookie = new HttpCookie("userID", "");
            //            cookie.Expires = DateTime.Now.AddHours(24);
            //        }
            //        context.Response.SetCookie(cookie);
            //        break;
            //}


            /// process sign-on user profile
            ///
            var roles    = profile.UserRole.Select(r => r.UserRoleDefinition).ToArray();
            var roleAuth = profile.UserRoleAuthorization.ToArray();
            var auth     = profile.UserRoleAuthorization.Select(r => r.UserRoleDefinition).ToArray();
        }
コード例 #2
0
 public static void Logout(this HttpContextBase context)
 {
     context.Response.SetCookie(new HttpCookie(FormsAuthentication.FormsCookieName, ""));
     context.Response.SetCookie(new HttpCookie("loginToken", ""));
     context.ClearCache();
 }