예제 #1
0
        protected override void OnPreRender(EventArgs e)
        {
            HtmlAnchor anchor = new HtmlAnchor();

            anchor.ID   = "bindingUrlTemplate";
            anchor.HRef = GetBindingPageUrl();

            this.bindingUrlContainer.Text = anchor.GetHtml();

            this.simulateDateRow.Visible = PassportSignInSettings.GetConfig().UseSimulateTime;

            if (this._Owner != null)
            {
                this.culture.Value = this._Owner.PageData.Properties.GetValue("SignInCulture", "zh-CN");

                string tenantCode = PassportManager.GetTenantCodeFromContext();

                if (tenantCode.IsNullOrEmpty())
                {
                    tenantCode = this._Owner.PageData.Properties.GetValue("TenantCode", string.Empty);
                }

                this.tenantCode.Text = tenantCode;
            }

            base.OnPreRender(e);
        }
예제 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);

            string lastUserID = Request.QueryString["lastUserID"];

            string returnUrl = Request.QueryString["ru"];

            if (string.IsNullOrEmpty(returnUrl) == false)
            {
                string logonUserID = Request.ServerVariables["LOGON_USER"];

                ExceptionHelper.FalseThrow(string.IsNullOrEmpty(logonUserID) == false, "不能取到LOGON_USER,该页面应该设置为禁止匿名访问");

                LogOnIdentity loi = new LogOnIdentity(logonUserID);

                if (string.Compare(loi.LogOnNameWithoutDomain, lastUserID, true) == 0)
                {
                    Response.StatusCode = (int)HttpStatusCode.Unauthorized;
                    Response.AddHeader("WWW-Authenticate", "NTLM");
                }
                else
                {
                    Response.Redirect(PassportManager.GetSignInPageUrl(returnUrl, logonUserID));
                }
            }
        }
예제 #3
0
        private HtmlAnchor CreateLink()
        {
            HtmlAnchor anchor = new HtmlAnchor();

            anchor.Style["border"] = "none";

            HtmlImage img = new HtmlImage();

            img.Style["border"] = "none";

            string ru = this.ResolveUrl(ReturnUrl);

            if (ru.IsNullOrEmpty())
            {
                ru = UriHelper.RemoveUriParams(Page.Request.Url.ToString(), "t");
            }

            ru            = ChangeToAbsoluteUrl(ru);
            anchor.HRef   = PassportManager.GetLogOnOrLogOffUrl(ru, this.AutoRedirect, this.LogOffAll);
            anchor.Target = this.Target;

            if (IsTicketValid)
            {
                img.Src = SignOutImage;
            }
            else
            {
                img.Src = SignInImage;
            }

            anchor.Controls.Add(img);

            return(anchor);
        }
예제 #4
0
        private HtmlAnchor CreateLink()
        {
            HtmlAnchor anchor = new HtmlAnchor();

            anchor.Style["border"] = "none";

            HtmlImage img = new HtmlImage();

            img.Style["border"] = "none";

            string ru = this.ResolveUrl(ReturnUrl);

            anchor.HRef   = PassportManager.GetLogOnOrLogOffUrl(ru, this.AutoRedirect, this.LogOffAll);
            anchor.Target = this.Target;

            if (IsTicketValid)
            {
                img.Src = SignOutImage;
            }
            else
            {
                img.Src = SignInImage;
            }

            anchor.Controls.Add(img);

            return(anchor);
        }
예제 #5
0
        protected ISignInUserInfo SignInControl_InitSignInControl()
        {
            DefaultSignInUserInfo userInfo = null;

            string logonName = PassportManager.DecryptUserID(Request.QueryString["uid"]);

            string windowsLogonName = Request.ServerVariables["LOGON_USER"];

            if (logonName.IsNullOrEmpty())
            {
                logonName = windowsLogonName;
            }

            if (string.IsNullOrEmpty(logonName) == false)
            {
                userInfo = new DefaultSignInUserInfo();

                LogOnIdentity loi = new LogOnIdentity(logonName);

                userInfo.UserID = loi.LogOnNameWithoutDomain;
                userInfo.Domain = loi.Domain;
                userInfo.Properties["WindowsIntegrated"] = true;

                LogOnIdentity wloi = new LogOnIdentity(windowsLogonName);

                userInfo.OriginalUserID = wloi.LogOnNameWithoutDomain;
            }

            return(userInfo);
        }
예제 #6
0
        public static void Part2(string[] input)
        {
            Helper.PrintChallengePart("Part 2");

            PassportManager passMangager = new PassportManager(input);
            List <Passport> valid        = passMangager.PassportValidation2();

            Console.WriteLine("Valid Passports: " + valid.Count);
        }
 public WarpDriveEngine(WarpDrivePlugin warpDrivePlugin, string xmlFile)
 {
     this.warpDrivePlugin = warpDrivePlugin;
     this.globalOwnershipEnforced = this.warpDrivePlugin.globalOwnershipEnforced;
     globalWarpList = new WarpList();
     passportManager = PassportManagerFactory.getPassportManager();
     vault = VaultFactory.getVault();
     loadGlobalWarps();
 }
예제 #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            PassportManager.CheckAuthenticated();

            bool    fromCookie = false;
            ITicket ticket     = PassportManager.GetTicket(out fromCookie);

            ShowTicketInfo(ticket);
        }
예제 #9
0
        private void LogOffAllAPP(LogOffInfo info)
        {
            List <AppLogOffCallBackUrl> urls = info.GetAllRelativeAppsLogOffCallBackUrl();

            this.RenderCallBackUrls(urls);

            PassportSignInSettings.GetConfig().PersistSignInInfo.DeleteRelativeSignInInfo(info.SessionID);
            PassportManager.ClearSignInCookie();
        }
예제 #10
0
        private void RedirectToAppUrl(ITicket ticket)
        {
            PassportManager.SignInServiceRedirectToApp(ticket);

            if (ticket.SignInInfo != null && Page.IsPostBack)
            {
                PassportWebControlHelper.SetControlValue(this.TemplateControl, "errorMessage", "ForeColor", Color.Green);
                PassportWebControlHelper.SetControlValue(this.TemplateControl, "errorMessage", "Text", "已经登录成功");
            }
        }
예제 #11
0
        public void Day4Part1Test()
        {
            // Arrange
            string[] input = Helper.ParseInput(@"Inputs\\Day4_example.txt");

            // Act
            PassportManager passMangager = new PassportManager(input);
            List <Passport> valid        = passMangager.PassportValidation1();

            // Assert
            Assert.AreEqual(2, valid.Count);
        }
예제 #12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Cache.SetNoStore();
            PassportManager.ClearSignInCookie();
            string url = this.Request.Url.AbsoluteUri;

            url = url.Substring(0, url.LastIndexOf("/") + 1);

            Response.Redirect(PassportManager.GetLogOnOrLogOffUrl(url + "OGUAdmin.aspx", true, true));

            //Response.Redirect(PassportManager.GetLogOnOrLogOffUrl("~/OGUAdmin.aspx", true));
        }
예제 #13
0
        public void Day4BuildPassports()
        {
            // Arrange
            string[] input = Helper.ParseInput(@"Inputs\\Day4_example.txt");

            // Act
            PassportManager passMangager  = new PassportManager(input);
            int             passportCount = passMangager.passports.Count;

            // Assert
            Assert.AreEqual(4, passportCount);
        }
예제 #14
0
        private void SecondDay4()
        {
            DataProcessor   dataProcessor   = new DataProcessor();
            PassportManager passportManager = new PassportManager();

            foreach (var line in dataProcessor.GetData())
            {
                passportManager.AddLine(line);
            }

            Result2 = passportManager.StrictValid().ToString();
        }
예제 #15
0
        private void FirstDay4()
        {
            DataProcessor   dataProcessor   = new DataProcessor();
            PassportManager passportManager = new PassportManager();

            foreach (var line in dataProcessor.GetData())
            {
                passportManager.AddLine(line);
            }

            Result1 = passportManager.ValidCount().ToString();
        }
예제 #16
0
        private static ITicket CheckAuthenticatedAndGetTicket(bool autoRedirect)
        {
            AuthenticateDirElement aDir =
                AuthenticateDirSettings.GetConfig().AuthenticateDirs.GetMatchedElement <AuthenticateDirElement>();

            bool needRedirect = autoRedirect && (aDir == null || aDir.AutoRedirect);

            PassportManager.CheckAuthenticated(needRedirect);

            TicketSource ticketSource = TicketSource.Unknown;

            return(PassportManager.GetTicket(out ticketSource));
        }
예제 #17
0
        private void LogOffAllAPP(string sessionID, string appID, string callbackUrl)
        {
            ExceptionHelper.CheckStringIsNullOrEmpty(sessionID, "sessionID");
            ExceptionHelper.CheckStringIsNullOrEmpty(appID, "appID");
            ExceptionHelper.CheckStringIsNullOrEmpty(callbackUrl, "callbackUrl");

            List <AppLogOffCallBackUrl> list =
                PassportSignInSettings.GetConfig().PersistSignInInfo.GetAllRelativeAppsLogOffCallBackUrl(sessionID);

            if (AppLogOffCallBackUrlExist(list, appID, callbackUrl) == false)
            {
                AppLogOffCallBackUrl au = new AppLogOffCallBackUrl();

                au.AppID             = appID;
                au.LogOffCallBackUrl = callbackUrl;

                list.Add(au);
            }

            HtmlTable table = new HtmlTable();

            tableContainer.InnerHtml = string.Empty;
            tableContainer.Controls.Add(table);

            foreach (AppLogOffCallBackUrl au in list)
            {
                HtmlTableRow tRow = new HtmlTableRow();
                table.Controls.Add(tRow);

                HtmlTableCell cell = new HtmlTableCell();
                cell.InnerText = " ";
                tRow.Controls.Add(cell);

                cell = new HtmlTableCell();
                tRow.Controls.Add(cell);

                HtmlImage img = new HtmlImage();
                img.Align = "absmiddle";
                img.Src   = au.LogOffCallBackUrl;
                img.Alt   = img.Src;
                cell.Controls.Add(img);

                cell           = new HtmlTableCell();
                cell.InnerText = string.Format(Translate("退出应用程序{0}"), au.AppID);
                tRow.Controls.Add(cell);
            }

            PassportSignInSettings.GetConfig().PersistSignInInfo.DeleteRelativeSignInInfo(sessionID);
            PassportManager.ClearSignInCookie();
        }
예제 #18
0
        protected override void OnPreRender(EventArgs e)
        {
            this.SetAttribute("style", "display:none");
            this.SetAttribute("data-role", "logoutlink");
            if (DeluxeIdentity.CurrentUser != null)
            {
                this.SetAttribute("data-login-name", DeluxeIdentity.CurrentUser.LogOnName);
                this.SetAttribute("data-login-user", DeluxeIdentity.CurrentUser.DisplayName);
            }
            string url = PassportManager.GetLogOnOrLogOffUrl(this.ResolveUrl("~/Default.aspx"), true, true);

            this.HRef = url;
            base.OnPreRender(e);
        }
예제 #19
0
        /// <summary>
        /// Create an instance of StaticVault
        /// </summary>
        /// <param name="client"></param>
        /// <param name="vaultId"></param>
        /// <param name="vaultName"></param>
        /// <param name="masterKey"></param>
        private StaticVault(Client client, string vaultId, string vaultName, string masterKey)
        {
            Client    = client;
            VaultId   = vaultId;
            VaultName = vaultName;
            MasterKey = masterKey;
            _security = new Security();

            Address             = new AddressManager(this);
            DateOfBirth         = new DateOfBirthManager(this);
            DriversLicense      = new DriversLicenseManager(this);
            FirstName           = new FirstNameManager(this);
            Gender              = new GenderManager(this);
            Generic             = new GenericManager(this);
            LastName            = new LastNameManager(this);
            Passport            = new PassportManager(this);
            PlaceOfBirth        = new PlaceOfBirthManager(this);
            Race                = new RaceManager(this);
            Random              = new RandomManager(this);
            Ssn                 = new SsnManager(this);
            TaxPayer            = new TaxPayerManager(this);
            VehicleRegistration = new VehicleRegistrationManager(this);
        }
예제 #20
0
        public override void Load()
        {
            Name = "Passport";
            Description = "Server-side single user accounts and developer API";
            Author = "Envoy";
            Version = "1.5.28";
            TDSMBuild = 28;

            Log("Version " + base.Version + " Loading...");

            // setup properties
            setupProperties();

            // get the singleton PassportManager
            passportManager = PassportManagerFactory.getPassportManager();

            // start the save timer
            Log("Starting save timer with interval [" + saveTimeMillis + "] millis");
            passportManagerSaveTimer = new PassportManagerSaveTimer(passportManager, saveTimeMillis);
            passportManagerSaveTimer.Start();

            isEnabled = true;
        }
예제 #21
0
        private void LogOffAllAPP(string sessionID, string appID, string callbackUrl)
        {
            ExceptionHelper.CheckStringIsNullOrEmpty(sessionID, "sessionID");
            ExceptionHelper.CheckStringIsNullOrEmpty(appID, "appID");
            ExceptionHelper.CheckStringIsNullOrEmpty(callbackUrl, "callbackUrl");

            List <AppLogOffCallBackUrl> urls =
                PassportSignInSettings.GetConfig().PersistSignInInfo.GetAllRelativeAppsLogOffCallBackUrl(sessionID);

            if (AppLogOffCallBackUrlExist(urls, appID, callbackUrl) == false)
            {
                AppLogOffCallBackUrl au = new AppLogOffCallBackUrl();

                au.AppID             = appID;
                au.LogOffCallBackUrl = callbackUrl;

                urls.Add(au);
            }

            this.RenderCallBackUrls(urls);

            PassportSignInSettings.GetConfig().PersistSignInInfo.DeleteRelativeSignInInfo(sessionID);
            PassportManager.ClearSignInCookie();
        }
예제 #22
0
        public JsonResult CheckPassportData(string inputString)
        {
            PassportValidationResult validationResult = null;

            try
            {
                var pi = JsonConvert.DeserializeObject <PassportInput>(HttpUtility.UrlDecode(inputString));

                PassportManager pm = new PassportManager();
                validationResult = pm.ValidatePassportData(pi);
            }
            catch (PassportDataException ex)
            {
                Logger.LogContent(ex);
                return(Json(JsonResponseFactory.ErrorResponse(ex.Message)));
            }
            catch (Exception ex)
            {
                Logger.LogContent(ex);
                return(Json(JsonResponseFactory.ErrorResponse(string.Format("{0}  |  {1}", ex.Message, ex.StackTrace))));
            }

            return(Json(JsonResponseFactory.SuccessResponse(JsonConvert.SerializeObject(validationResult))));
        }
예제 #23
0
 public PassportManagerSaveTimer(PassportManager passportManager, int saveTimeMillis)
 {
     this.passportManager = passportManager;
     this.Interval = saveTimeMillis;
     this.Elapsed += new ElapsedEventHandler(this.elapsed);
     this.Enabled = true;
 }