Example #1
0
        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);
        }
Example #2
0
        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);
                }
            }
        }
Example #3
0
        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));
        }
Example #4
0
        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));
        }
Example #5
0
        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);
                }
            }
        }
Example #6
0
        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);
        }
Example #7
0
 public static extern int RasGetCredentials(
     string lpszPhoneBook,
     string lpszEntryName,
     [In, Out] ref RASCREDENTIALS lpCredentials);
Example #8
0
 public int RasGetCredentials(string lpszPhoneBook, string lpszEntryName, ref RASCREDENTIALS lpCredentials)
 {
     return(SafeNativeMethods.RasGetCredentials(lpszPhoneBook, lpszEntryName, ref lpCredentials));
 }