Exemplo n.º 1
0
        public void SendUserInfoInSqlContext_Long()
        {
            string userName        = "******" + new string('x', 100);
            string workstationName = "def" + new string('x', 100);
            var    testUser        = new TestUserInfo(userName, workstationName);
            string expected        = $"Rhetos:{userName},{workstationName}".Limit(128);

            Assert.AreEqual(expected, ReadContextWithSqlExecuter(testUser));
        }
Exemplo n.º 2
0
        public void ExtractUserInfoTestFormat()
        {
            var initialUserInfo   = new TestUserInfo("os\ab", "cd.ef", true);
            var processedUserInfo = SqlUtility.ExtractUserInfo(SqlUtility.UserContextInfoText(initialUserInfo));

            Assert.AreEqual(
                initialUserInfo.UserName + "|" + initialUserInfo.Workstation,
                processedUserInfo.UserName + "|" + processedUserInfo.Workstation);
        }
Exemplo n.º 3
0
        private static string ReadContextWithSqlExecuter(TestUserInfo testUser)
        {
            var sqlExecuter = NewSqlExecuter(testUser);
            var result      = new List <string>();

            sqlExecuter.ExecuteReader(
                $"SELECT {contextInfoToText}",
                reader => result.Add(reader[0].ToString()));
            return(result.Single());
        }
Exemplo n.º 4
0
        public IActionResult Get()
        {
            TestUserInfo testUser = new TestUserInfo();

            testUser.Id       = Guid.NewGuid().ToString();
            testUser.UserName = "******";
            testUser.UserAge  = 26;

            return(Json(testUser));
        }
Exemplo n.º 5
0
        public void SendUserInfoInSqlContext_NoUser()
        {
            var testUser    = new TestUserInfo(null, null, false);
            var sqlExecuter = NewSqlExecuter(SqlUtility.ConnectionString, testUser);
            var result      = new List <object>();

            sqlExecuter.ExecuteReader("SELECT context_info()", reader => result.Add(reader[0]));
            Console.WriteLine(result.Single());
            Assert.AreEqual(typeof(DBNull), result.Single().GetType());
        }
Exemplo n.º 6
0
        public void SendUserInfoInSqlContext_ReadWithUser()
        {
            var testUser    = new TestUserInfo("Bob", "HAL9000");
            var sqlExecuter = NewSqlExecuter(testUser);
            var result      = new List <string>();

            sqlExecuter.ExecuteReader(
                @"SELECT (CONVERT([varchar](128),left(context_info(),isnull(nullif(charindex(0x00,context_info())-(1),(-1)),(128))),(0)))",
                reader => result.Add(reader[0].ToString()));
            Console.WriteLine(result.Single());
            Assert.IsTrue(result.Single().Contains(testUser.UserName), "context_info should contain username.");
            Assert.IsTrue(result.Single().Contains(testUser.Workstation), "context_info should contain client workstation.");
        }
Exemplo n.º 7
0
        public void SendUserInfoInSqlContext_WriteWithUser()
        {
            var    testUser    = new TestUserInfo("Bob", "HAL9000");
            var    sqlExecuter = NewSqlExecuter(testUser);
            string table       = GetRandomTableName();

            var result = new List <string>();

            sqlExecuter.ExecuteSql($"SELECT Context = {contextInfoToText} INTO {table}");
            sqlExecuter.ExecuteReader(
                @"SELECT * FROM " + table,
                reader => result.Add(reader[0].ToString()));

            Assert.AreEqual("Rhetos:Bob,HAL9000", TestUtility.Dump(result));
        }
Exemplo n.º 8
0
        public void SendUserInfoInSqlContext_ReadWithUser()
        {
            var testUser = new TestUserInfo
            {
                IsUserRecognized = true,
                UserName         = "******",
                Workstation      = "HAL9000"
            };
            var sqlExecuter = new OracleSqlExecuter(SqlUtility.ConnectionString, new ConsoleLogProvider(), testUser);
            var result      = new List <string>();

            sqlExecuter.ExecuteReader(@"SELECT SYS_CONTEXT('USERENV','CLIENT_INFO') FROM DUAL", reader => result.Add(reader[0].ToString()));

            string clientInfo = result.Single();

            TestUtility.AssertContains(clientInfo, testUser.UserName, "CLIENT_INFO should contain username.");
            TestUtility.AssertContains(clientInfo, testUser.Workstation, "CLIENT_INFO should contain client workstation.");
            Assert.AreEqual(SqlUtility.UserContextInfoText(testUser), clientInfo);
        }
Exemplo n.º 9
0
        public void SendUserInfoInSqlContext_NonAscii()
        {
            var testUser = new TestUserInfo("BobČ", "HAL9000ž");

            Assert.AreEqual("Rhetos:Bob?,HAL9000?", ReadContextWithSqlExecuter(testUser));
        }
Exemplo n.º 10
0
        public void SendUserInfoInSqlContext_ReadWithUser()
        {
            var testUser = new TestUserInfo("Bob", "HAL9000");

            Assert.AreEqual("Rhetos:Bob,HAL9000", ReadContextWithSqlExecuter(testUser));
        }
Exemplo n.º 11
0
 /// <summary>
 /// Sends a sign in request to impersonate the specified user on the test
 /// server environment.
 /// </summary>
 /// <param name="userInfo">
 /// User to impersonate. The user can be associated with any user area.
 /// </param>
 public static Task ImpersonateUserAsync(this HttpClient httpClient, TestUserInfo userInfo)
 {
     return(ImpersonateUserAsync(httpClient, userInfo.UserId));
 }