public void RasGetCredentialsAsExpected() { var lpszPhoneBook = @"C:\Users\My.pbk"; var lpszEntryName = "My Entry"; var lpCredentials = new RASCREDENTIALS(); api.Setup(o => o.RasGetCredentials(lpszPhoneBook, lpszEntryName, ref It.Ref <RASCREDENTIALS> .IsAny)).Returns(SUCCESS); eventLoggingPolicy.Setup(o => o.LogEvent(It.IsAny <EventLevel>(), It.IsAny <PInvokeInt32CallCompletedTraceEvent>())).Callback(new LogEventCallback( (level, o1) => { Assert.AreEqual(EventLevel.Verbose, level); var eventData = (PInvokeInt32CallCompletedTraceEvent)o1; Assert.True(eventData.Args.ContainsKey(nameof(lpszPhoneBook))); Assert.True(eventData.Args.ContainsKey(nameof(lpszEntryName))); Assert.True(eventData.OutArgs.ContainsKey(nameof(lpCredentials))); Assert.True(eventData.Duration > TimeSpan.Zero); Assert.AreEqual(SUCCESS, eventData.Result); })).Verifiable(); var target = new RasApi32LoggingAdvice(api.Object, eventLoggingPolicy.Object); var result = target.RasGetCredentials(lpszPhoneBook, lpszEntryName, ref lpCredentials); eventLoggingPolicy.Verify(); Assert.AreEqual(SUCCESS, result); }
private static bool _SetRasCredentials(string entryName, RASCREDENTIALS credentials) { int size = Marshal.SizeOf(typeof(RASCREDENTIALS)); IntPtr pCredentials = IntPtr.Zero; try { credentials.size = size; pCredentials = Marshal.AllocHGlobal(size); Marshal.StructureToPtr(credentials, pCredentials, true); int ret = RasSetCredentials(null, entryName, pCredentials, false); switch (ret) { case SUCCESS: return(true); case ERROR_ACCESS_DENIED: throw new UnauthorizedAccessException(); default: throw ProcessRASException(ret); } } finally { if (pCredentials != IntPtr.Zero) { Marshal.FreeHGlobal(pCredentials); } } }
public static bool SetPreSharedKey(string entryName, string presharedkey) { var credentials = new RASCREDENTIALS() { userName = string.Empty, password = presharedkey, domain = string.Empty, options = RASCM.PreSharedKey }; return(_SetRasCredentials(entryName, credentials)); }
public static bool SetCredentials(string entryName, string domain, string username, string password) { var credentials = new RASCREDENTIALS() { userName = username, password = password, domain = domain ?? string.Empty, options = RASCM.Domain | RASCM.UserName | RASCM.Password }; return(_SetRasCredentials(entryName, credentials)); }
public static bool SetCredentials(string entryName, string domain, string username, string password) { var credentials = new RASCREDENTIALS() { userName = username, password = password, domain = domain ?? string.Empty, options = RASCM.Domain | RASCM.UserName | RASCM.Password }; int size = Marshal.SizeOf(typeof(RASCREDENTIALS)); IntPtr pCredentials = IntPtr.Zero; try { credentials.size = size; pCredentials = Marshal.AllocHGlobal(size); Marshal.StructureToPtr(credentials, pCredentials, true); int ret = RasSetCredentials(null, entryName, pCredentials, false); switch (ret) { case SUCCESS: return(true); case ERROR_ACCESS_DENIED: throw new UnauthorizedAccessException(); default: throw ProcessRASException(ret); } } finally { if (pCredentials != IntPtr.Zero) { Marshal.FreeHGlobal(pCredentials); } } }
public int RasGetCredentials(string lpszPhoneBook, string lpszEntryName, ref RASCREDENTIALS lpCredentials) { var stopwatch = Stopwatch.StartNew(); var result = AttachedObject.RasGetCredentials(lpszPhoneBook, lpszEntryName, ref lpCredentials); stopwatch.Stop(); var callEvent = new PInvokeInt32CallCompletedTraceEvent { DllName = RasApi32Dll, Duration = stopwatch.Elapsed, MethodName = nameof(RasGetCredentials), Result = result, }; callEvent.Args.Add(nameof(lpszPhoneBook), lpszPhoneBook); callEvent.Args.Add(nameof(lpszEntryName), lpszEntryName); callEvent.OutArgs.Add(nameof(lpCredentials), lpCredentials); LogVerbose(callEvent); return(result); }
public static extern int RasGetCredentials( string lpszPhoneBook, string lpszEntryName, [In, Out] ref RASCREDENTIALS lpCredentials);
public int RasGetCredentials(string lpszPhoneBook, string lpszEntryName, ref RASCREDENTIALS lpCredentials) { return(SafeNativeMethods.RasGetCredentials(lpszPhoneBook, lpszEntryName, ref lpCredentials)); }