public static void Assert(this AccessState state, string message = null, bool allowRestricted = false) { if (state == AccessState.Available) { return; } if (allowRestricted && state == AccessState.Restricted) { return; } throw new ArgumentException(message ?? $"Invalid State " + state); }
void Append(string text, AccessState current, Func <Task <AccessState> > request) { var item = new CommandItem { Text = text, Detail = current.ToString() }; item.PrimaryCommand = ReactiveCommand.CreateFromTask(async() => { var r = await request(); item.Detail = r.ToString(); }); this.List.Add(item); }
public void ShowMiracleAccess(bool _show) { if (MiracleEnter != null) { AccessState accessState = GameCenter.miracleMng.miracleStatus; if (_show && accessState != AccessState.ACHIEVE && accessState != AccessState.NONE) { MiracleEnter.OpenUI(); } if (!_show && accessState == AccessState.ACHIEVE && accessState != AccessState.NONE) { MiracleEnter.CloseUI(); } } }
public static bool AlertAccess(this IDialogService dialogs, AccessState access) { switch (access) { case AccessState.Available: return(true); case AccessState.Restricted: dialogs.LongAlert("警告:访问受限"); return(true); default: dialogs.LongAlert("无效的访问状态: " + access); return(false); } }
public void TestOptionAccessEndpoint(AccessState accessState, HttpStatusCode httpStatusCode, ResultCode resultCode) { AccessEndpointManager accessEndpointHandler = new AccessEndpointManager(); var requestDic = new Dictionary <string, object>() { ["id"] = -1, ["name"] = "my test access endpoint option", ["parent_id"] = 0, ["sort"] = 0, ["enabled"] = 1, ["type"] = 0, }; var response = accessEndpointHandler.AccessEndpoint <List <OptionWriteResponse> >(accessState, OptionManager.OptionUpdateEndpoint, requestDic, HttpMethod.Post); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(httpStatusCode).And.ErrorCode((int)resultCode), $"Still able to insert option."); }
public void PostResetPasswordAccessEndpoint(AccessState accessState, HttpStatusCode httpStatusCode, ResultCode resultCode) { var defaultCompanyName = AuthenticationInfoProvider.Current.DefaultCompanyName; var defaultUserLogin = AuthenticationInfoProvider.Current.DefaultUserLogin; AccessEndpointManager accessEndpointHandler = new AccessEndpointManager(); var parameterRequest = new Dictionary <string, object>(Common.ResetPasswordParameters); parameterRequest["companyLoginId"] = defaultCompanyName; parameterRequest["username"] = defaultUserLogin; parameterRequest["token"] = Common.RefreshToken(defaultCompanyName, defaultUserLogin); var response = accessEndpointHandler.AccessEndpoint <ResetUserPasswordResponse>(accessState, $"/privateapi/authentication/reset-password", parameterRequest, HttpMethod.Post); LastPassword = Common.CheckUpdatedPassword(response) ? Common.NewPassword : string.Empty; PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(httpStatusCode).And.ErrorCode((int)resultCode), "Still able to access entry api."); }
public void ReadHrbcCoreTmpCompanyInfoAccessEndpointTest(AccessState accessState, HttpStatusCode httpStatusCode, ResultCode resultCode) { var creds = AuthenticationInfoProvider.GetAuthSpecForCurrentTest(); var companyId = creds.Companies.First().Value.Id; var readSessionHandler = new HrbcCoreManager(); var accessEndpointHandler = new AccessEndpointManager(); var request = new Dictionary <string, string>() { ["fullMode"] = "true", }; creds.Dispose(); var response = accessEndpointHandler.AccessEndpoint <HrbcCoreSessionResponse>(accessState, $"{HrbcCoreManager.GetTmpCompanyInfoEndpoint}/{companyId}", request, System.Net.Http.HttpMethod.Get); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(httpStatusCode), "Still able to access entry api."); }
private bool TryGetValue(SharepointAccessManager.Key key, out AccessState value) { bool result; lock (this.lockObj) { if (!this.cache.TryGetValue(key, out value)) { this.cache.AddAbsolute(key, AccessState.Pending, DateTime.UtcNow + this.requestTimeout + TimeSpan.FromSeconds(5.0), null); result = false; } else { result = true; } } return(result); }
public static async Task <bool> AlertAccess(this IUserDialogs dialogs, AccessState access) { switch (access) { case AccessState.Available: return(true); case AccessState.Restricted: await dialogs.AlertAsync("WARNING: Access is restricted"); return(true); default: await dialogs.AlertAsync("Invalid Access State: " + access); return(false); } }
private static void ReceiveAuthorization(string[] prefixes) { ProcessStartInfo psi = new ProcessStartInfo { FileName = "https://login.eveonline.com/oauth/authorize?response_type=code&redirect_uri=http://localhost/oauth-callback&client_id=e4c1b3cd8488434cb8fec58469bec263&scope=publicData esi-calendar.respond_calendar_events.v1 esi-calendar.read_calendar_events.v1 esi-location.read_location.v1 esi-location.read_ship_type.v1 esi-mail.organize_mail.v1 esi-mail.read_mail.v1 esi-mail.send_mail.v1 esi-skills.read_skills.v1 esi-skills.read_skillqueue.v1 esi-wallet.read_character_wallet.v1 esi-wallet.read_corporation_wallet.v1 esi-search.search_structures.v1 esi-clones.read_clones.v1 esi-characters.read_contacts.v1 esi-universe.read_structures.v1 esi-bookmarks.read_character_bookmarks.v1 esi-killmails.read_killmails.v1 esi-corporations.read_corporation_membership.v1 esi-assets.read_assets.v1 esi-planets.manage_planets.v1 esi-fleets.read_fleet.v1 esi-fleets.write_fleet.v1 esi-ui.open_window.v1 esi-ui.write_waypoint.v1 esi-characters.write_contacts.v1 esi-fittings.read_fittings.v1 esi-fittings.write_fittings.v1 esi-markets.structure_markets.v1 esi-corporations.read_structures.v1 esi-characters.read_loyalty.v1 esi-characters.read_opportunities.v1 esi-characters.read_chat_channels.v1 esi-characters.read_medals.v1 esi-characters.read_standings.v1 esi-characters.read_agents_research.v1 esi-industry.read_character_jobs.v1 esi-markets.read_character_orders.v1 esi-characters.read_blueprints.v1 esi-characters.read_corporation_roles.v1 esi-location.read_online.v1 esi-contracts.read_character_contracts.v1 esi-clones.read_implants.v1 esi-characters.read_fatigue.v1 esi-killmails.read_corporation_killmails.v1 esi-corporations.track_members.v1 esi-wallet.read_corporation_wallets.v1 esi-characters.read_notifications.v1 esi-corporations.read_divisions.v1 esi-corporations.read_contacts.v1 esi-assets.read_corporation_assets.v1 esi-corporations.read_titles.v1 esi-corporations.read_blueprints.v1 esi-bookmarks.read_corporation_bookmarks.v1 esi-contracts.read_corporation_contracts.v1 esi-corporations.read_standings.v1 esi-corporations.read_starbases.v1 esi-industry.read_corporation_jobs.v1 esi-markets.read_corporation_orders.v1 esi-corporations.read_container_logs.v1 esi-industry.read_character_mining.v1 esi-industry.read_corporation_mining.v1 esi-planets.read_customs_offices.v1 esi-corporations.read_facilities.v1 esi-corporations.read_medals.v1 esi-characters.read_titles.v1 esi-alliances.read_contacts.v1 esi-characters.read_fw_stats.v1 esi-corporations.read_fw_stats.v1 esi-characterstats.read.v1", UseShellExecute = true }; Process.Start(psi); if (prefixes == null || prefixes.Length == 0) { throw new ArgumentException("Prefixes needed"); } HttpListener listener = new HttpListener(); foreach (string s in prefixes) { listener.Prefixes.Add(s); } listener.Start(); Console.WriteLine("Listening for callback..."); HttpListenerContext context = listener.GetContext(); HttpListenerRequest request = context.Request; HttpListenerResponse response = context.Response; string responseString = "<html lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\"><head> <meta charset=\"utf-8\" /> <title>Authentication Successful</title> <style> p, body { color: #FFFFFF; font-family: ProximaNova-Regular, Arial } h2 { text-align: center; margin-bottom: 10px; text-shadow: 1px 1px 2px #7F7F7F; font-size: 30px; font-family: \"ProximaNova-SemiBold\",Arial } body { background: #000000 url(https://login.eveonline.com/Images/site-bg.jpg) no-repeat center center fixed } #content { background-color: rgba(0, 0, 0, 0.7); padding: 30px; width: 400px; margin: auto } </style></head><body><div id=\"content\"><h2>AUTHENTICATION SUCCESSFUL</h2><p>This browser window can now be closed.</p><script type=\"text/javascript\" language=\"JavaScript\"><!--window.close();// --></script></div></body></html>"; byte[] buffer = Encoding.UTF8.GetBytes(responseString); response.ContentLength64 = buffer.Length; Stream output = response.OutputStream; output.Write(buffer, 0, buffer.Length); authCode = request.QueryString["code"]; output.Close(); listener.Stop(); m_eAccessState = AccessState.GET_ACCESS; }
public void TestMergeAccessEndpoint(ResourceId resourceId, AccessState accessState, HttpStatusCode httpStatusCode, ResultCode resultCode) { AccessEndpointManager accessEndpointHandler = new AccessEndpointManager(); var baseId = RecordsMergeCreator.Data[$"{resourceId}{0}"].Id; var mergeId = RecordsMergeCreator.Data[$"{resourceId}{1}"].Id; var clientId = RecordsMergeCreator.Data[$"{ResourceId.Client}{0}"].Id; var requestContent = new Dictionary <string, object>() { ["baseId"] = baseId, ["mergedId"] = new List <ulong>() { mergeId }, ["mapping"] = Common.GetMapping(resourceId, baseId, clientId), }; var response = accessEndpointHandler.AccessEndpoint <MergeResponse>(accessState, $"/privateapi/{resourceId.ToString().ToLower()}/merge", requestContent, HttpMethod.Post); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(httpStatusCode).And.ErrorCode((int)resultCode), "Still able to access merge api."); }
void ShowMiracleAccess() { AccessState accessState = GameCenter.miracleMng.miracleStatus; if (GameCenter.sceneMng.EnterSucceed && accessState != AccessState.ACHIEVE && accessState != AccessState.NONE) { if (MiracleEnter != null) { MiracleEnter.OpenUI(); } } if (accessState == AccessState.ACHIEVE && accessState != AccessState.NONE && MiracleEnter.gameObject.activeSelf) { if (MiracleEnter != null) { MiracleEnter.CloseUI(); } } }
public void ResetPassAccessEndpointTests(AccessState accessState, HttpStatusCode httpStatusCode, ResultCode resultCode) { var accessEndpointHandler = new AccessEndpointManager(); var token = Common.GetToken(); var defaultUser = CommonData.GetDefaultUser(); var requestContent = new Dictionary <string, object>() { ["companyLoginId"] = defaultUser.Company.Name, ["username"] = defaultUser.Login, ["newPassword"] = "******", ["token"] = token.Result.Token }; var oldPassword = Common.GetOldPassword(); var passwordMng = new ResetPasswordManager(); var response = accessEndpointHandler.AccessEndpoint <ResetPasswordResponse>(accessState, Endpoint, requestContent, HttpMethod.Post); Common.RecoverOldPassword(requestContent, passwordMng, oldPassword); defaultUser.Dispose(); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(httpStatusCode).And.ErrorCode((int)resultCode)); }
public void ReadHrbcCoreSessionAccessEndpointTest(AccessState accessState, HttpStatusCode httpStatusCode, ResultCode resultCode) { var creds = AuthenticationInfoProvider.GetAuthSpecForCurrentTest(); var adminUserId = creds.Companies.First().Value.Users.First().Metadata["userId"].ToString(); var companyId = creds.Companies.First().Value.Id; var readSessionHandler = new HrbcCoreManager(); var accessEndpointHandler = new AccessEndpointManager(); var request = new Dictionary <string, string>() { ["companyId"] = companyId, ["userId"] = adminUserId, ["sessionId"] = readSessionHandler.GetDefaultSessionId(), }; creds.Dispose(); var response = accessEndpointHandler.AccessEndpoint <HrbcCoreSessionResponse>(accessState, HrbcCoreManager.GetSessionEndpoint, request, System.Net.Http.HttpMethod.Get); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(httpStatusCode), "Still able to access entry api."); }
public void CentralizedReset() { State = AccessState.Released; }
public PushAccessState(AccessState status, string?registrationToken) { this.Status = status; this.RegistrationToken = registrationToken; }
void UnRegist() { MsgHander.UnRegist(0xD950, S2C_ReplyMiracleData); miracleStatus = AccessState.NONE; }
private void SetNotes(AccessState state, string name, string learnerNumber, string note, string specialNeeds, string alert) { if (state == AccessState.Granted) { statusLabel.ForeColor = Color.Black; statusLabel.Text = @"Access Granted"; } else { statusLabel.ForeColor = Color.Red; statusLabel.Text = @"Access Denied"; } nameLabel.Text = name; learnerNumberLabel.Text = learnerNumber; noteLabel.Text = note; specialNeedsLabel.Text = specialNeeds; alertLabel.Text = alert; alertLabel2.Text = alert; panel1.Visible = !string.IsNullOrEmpty(alert); }
public static NotificationResult Fail(AccessState access) => new NotificationResult(0, access);
public AccessManager() { accessCodeIsValid = false; m_eAccessState = AccessState.READ_ACCESS_FROM_DISK; }
NotificationResult(int notificationId, AccessState accessStatus) { this.NotificationId = notificationId; this.AccessStatus = accessStatus; }
private void OnInternalQueryComplete(ICancelableAsyncResult asyncResult) { if (asyncResult == null) { throw new InvalidOperationException("OnInternalQueryComplete: asyncResult cannot be null."); } try { Exception ex = null; DownloadResult downloadResult = this.httpClient.EndDownload(asyncResult); if (!downloadResult.IsSucceeded) { ex = downloadResult.Exception; } if (downloadResult.ResponseStream == null && ex == null) { ex = new SharePointException((this.httpClient.LastKnownRequestedUri != null) ? this.httpClient.LastKnownRequestedUri.AbsoluteUri : string.Empty, new LocalizedString("Response is empty. The user probably doesn't have permission")); } if (ex != null) { this.executionAsyncResult.InvokeCallback(ex); } else { downloadResult.ResponseStream.Position = 0L; long num = 0L; try { using (XmlTextReader xmlTextReader = new XmlTextReader(downloadResult.ResponseStream)) { xmlTextReader.ReadToFollowing("d:High"); long num2 = xmlTextReader.ReadElementContentAsLong(); long num3 = xmlTextReader.ReadElementContentAsLong(); num = (num2 << 32) + num3; } } catch (XmlException value) { this.executionAsyncResult.InvokeCallback(value); return; } catch (DirectoryNotFoundException value2) { this.executionAsyncResult.InvokeCallback(value2); return; } catch (WebException value3) { this.executionAsyncResult.InvokeCallback(value3); return; } AccessState accessState = ((num & 47L) == 47L) ? AccessState.Allowed : AccessState.Denied; ExTraceGlobals.SiteMailboxPermissionCheckTracer.TraceDebug <long>((long)this.SessionHashCode, "PermissionCheckerClient.OnInternalQueryComplete: Permission bits retured by Sharepoint is {0}", num); this.executionAsyncResult.InvokeCallback(accessState); } } finally { this.Cleanup(); } }
private void SetValue(int sessionHashCode, SharepointAccessManager.Key key, SecurityIdentifier userSid, Guid mailboxGuid, AccessState value) { DateTime dateTime; lock (this.lockObj) { this.cache.Remove(key); dateTime = ((value == AccessState.Allowed) ? (DateTime.UtcNow + this.cacheExpiryForAllowedIdentity) : (DateTime.UtcNow + this.cacheExpiryForDeniedIdentity)); this.cache.AddAbsolute(key, value, dateTime, null); } ExTraceGlobals.SiteMailboxPermissionCheckTracer.TraceDebug((long)sessionHashCode, "SharepointAccessManager.SetValue: Add to cache {0} for user {1}, site mailbox {2}. Expiry is {3}", new object[] { value, userSid, mailboxGuid, dateTime }); }
public void TestCustomActionAccessEndpoint(string url, HttpMethod httpMethod, AccessState accessState, HttpStatusCode httpStatusCode, ResultCode resultCode) { AccessEndpointManager accessEndpointHandler = new AccessEndpointManager(); var response = accessEndpointHandler.AccessEndpoint <object>(accessState, $"/privateapi/{url}", httpMethod.ToNetHttpMethod()); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(httpStatusCode).And.ErrorCode((int)resultCode), "Still able to access custom action api."); }
public void OnBleAdapterStateChanged(AccessState state) { throw new NotImplementedException(); }
public Task OnAdapterStateChanged(AccessState state) { return(Task.CompletedTask); }
private bool UpdateAccessTokenIfNeeded(Uri sharepointUrl, ExchangePrincipal siteMailbox, ICredentials accessingUserCredential, ClientSecurityContext accessingUserSecurityContext, int sessionHashCode, out Exception exception, bool isTest = false) { exception = null; if (siteMailbox == null) { throw new ArgumentNullException("siteMailbox"); } if (accessingUserSecurityContext == null) { throw new ArgumentNullException("accessingUserSecurityContext"); } if (sharepointUrl == null) { ExTraceGlobals.SiteMailboxPermissionCheckTracer.TraceDebug <string>((long)sessionHashCode, "SharepointAccessManager.UpdateAccessTokenIfNeeded: Skip site mailbox {0} because its Sharepoint URL is null", siteMailbox.MailboxInfo.PrimarySmtpAddress.ToString()); return(false); } ExTraceGlobals.SiteMailboxPermissionCheckTracer.TraceDebug <ClientSecurityContext, string, string>((long)sessionHashCode, "SharepointAccessManager.UpdateAccessTokenIfNeeded: Entered with user {0}, site mailbox {1}, URL {2}", accessingUserSecurityContext, siteMailbox.MailboxInfo.PrimarySmtpAddress.ToString(), sharepointUrl.AbsoluteUri); LoggingContext loggingContext = new LoggingContext(siteMailbox.MailboxInfo.MailboxGuid, sharepointUrl.AbsoluteUri, accessingUserSecurityContext.ToString(), null); AccessState accessState = AccessState.Denied; bool flag = false; SharepointAccessManager.Key key = this.GetKey(accessingUserSecurityContext.UserSid, siteMailbox.MailboxInfo.MailboxGuid); if (!SharepointAccessManager.Instance.TryGetValue(key, out accessState)) { flag = true; ExTraceGlobals.SiteMailboxPermissionCheckTracer.TraceDebug((long)sessionHashCode, "SharepointAccessManager.UpdateAccessTokenIfNeeded: Cache miss, query Sharepoint"); SharepointAccessManager.PermissionCheckerClient permissionCheckerClient = new SharepointAccessManager.PermissionCheckerClient(sessionHashCode, siteMailbox.MailboxInfo.MailboxGuid, sharepointUrl.AbsoluteUri, accessingUserSecurityContext.UserSid, key, accessingUserCredential, this.requestTimeout, this.requestThroughLocalProxy, isTest); LazyAsyncResult lazyAsyncResult = (LazyAsyncResult)permissionCheckerClient.BeginExecute(new AsyncCallback(SharepointAccessManager.OnCheckComplete), permissionCheckerClient); int num = (int)this.synchronousWaitTimeout.TotalSeconds * 2; int num2 = 0; while (!lazyAsyncResult.IsCompleted || lazyAsyncResult.Result == null) { Thread.Sleep(500); num2++; if (num2 > num) { break; } } object result = lazyAsyncResult.Result; if (!(result is AccessState)) { exception = ((lazyAsyncResult.Result is Exception) ? (lazyAsyncResult.Result as Exception) : new TimeoutException("Timed out")); WebException ex = exception as WebException; if (ex != null) { SharePointException exception2 = new SharePointException(sharepointUrl.AbsoluteUri, ex, false); ExTraceGlobals.SiteMailboxPermissionCheckTracer.TraceError <WebExceptionStatus, string, Exception>((long)permissionCheckerClient.SessionHashCode, "SharepointAccessManager.UpdateAccessTokenIfNeeded: Query failed with WebException. Status: {0}, Message: {1}, InnerException: {2}", ex.Status, ex.Message, ex.InnerException); ProtocolLog.LogError(ProtocolLog.Component.SharepointAccessManager, loggingContext, "Query failed with SharePointException", exception2); } else { ExTraceGlobals.SiteMailboxPermissionCheckTracer.TraceError <Type, string, Exception>((long)permissionCheckerClient.SessionHashCode, "SharepointAccessManager.UpdateAccessTokenIfNeeded: Query failed with {0}, Message: {1}, InnerException: {2}", exception.GetType(), exception.Message, exception.InnerException); ProtocolLog.LogError(ProtocolLog.Component.SharepointAccessManager, loggingContext, string.Format("Query failed with {0}", exception.GetType()), exception); } return(false); } accessState = (AccessState)result; } else if (accessState == AccessState.Pending) { ExTraceGlobals.SiteMailboxPermissionCheckTracer.TraceDebug((long)sessionHashCode, "SharepointAccessManager.UpdateAccessTokenIfNeeded: Skip because there is an pending request"); return(true); } if (accessState == AccessState.Allowed) { if (!accessingUserSecurityContext.AddGroupSids(new SidBinaryAndAttributes[] { new SidBinaryAndAttributes(WellKnownSids.SiteMailboxGrantedAccessMembers, 4U) })) { ExTraceGlobals.SiteMailboxPermissionCheckTracer.TraceError((long)sessionHashCode, "SharepointAccessManager.UpdateAccessTokenIfNeeded: Failed to add SiteMailboxGrantedAccessMembers group sid to access token"); return(false); } ExTraceGlobals.SiteMailboxPermissionCheckTracer.TraceDebug <ClientSecurityContext, string, string>((long)sessionHashCode, "SharepointAccessManager.UpdateAccessTokenIfNeeded: Access is allowed for user {0}, site mailbox {1}, URL {2}", accessingUserSecurityContext, siteMailbox.MailboxInfo.PrimarySmtpAddress.ToString(), sharepointUrl.AbsoluteUri); if (flag) { ProtocolLog.LogInformation(ProtocolLog.Component.SharepointAccessManager, loggingContext, string.Format("Allow access for site mailbox {0}, URL {1}", siteMailbox.MailboxInfo.PrimarySmtpAddress.ToString(), sharepointUrl)); } } else if (flag) { ProtocolLog.LogInformation(ProtocolLog.Component.SharepointAccessManager, loggingContext, string.Format("Deny access for site mailbox {0}, URL {1}", siteMailbox.MailboxInfo.PrimarySmtpAddress.ToString(), sharepointUrl)); } return(true); }
public PermissionException(string module, AccessState badStatus) : base($"{module} had status of {badStatus}") { }
public virtual Task OnAdapterStateChanged(AccessState state) => Task.CompletedTask;
/// <summary> /// Reset variables to start again /// </summary> public void RicartReset() { _clock = new ExtendedLamportClock(LocalId); State = AccessState.Released; _isInterested = false; _acceptList = new List<string>(); _queue = new List<DataRequest>(); }