コード例 #1
0
        public override string[] GetRolesForUser(string username)
        {
            string usernameSplit = username.Split('\\')[1];

            using (WinAuthAndAzureAuthTestForURCSEntities db = new WinAuthAndAzureAuthTestForURCSEntities())
            {
                var user = db.UserAccounts.Where(u => u.UserName == usernameSplit).FirstOrDefault();

                if (user == null || user.UserProjectRoles == null || user.Locked == 1)
                {
                    return(new string[0]);
                }

                return(user.UserProjectRoles.Select(r => r.Role.RoleName).ToArray());
            }
        }
コード例 #2
0
        public override bool IsUserInRole(string username, string roleName)
        {
            using (WinAuthAndAzureAuthTestForURCSEntities db = new WinAuthAndAzureAuthTestForURCSEntities())
            {
                UserAccount user = db.UserAccounts.Find(username);

                Role role = db.Roles.Find(roleName);

                bool returnval = false;

                foreach (UserProjectRole u in user.UserProjectRoles)
                {
                    if (u.RoleId == role.RoleID)
                    {
                        returnval = true;
                    }
                }


                return(returnval);
            }
        }
コード例 #3
0
        public override string[] GetRolesForUser(string username)
        {
            if (!username.IsNullOrWhiteSpace())
            {
                string usernameSplit = username.Split('\\')[1];


                using (WinAuthAndAzureAuthTestForURCSEntities db = new WinAuthAndAzureAuthTestForURCSEntities())
                {
                    UserAccount user = db.UserAccounts.FirstOrDefault(u => u.UserName == usernameSplit);

                    if (user == null || user.UserProjectRoles == null || user.Locked == 1)
                    {
                        return(new string[0]);
                    }

                    return(user.UserProjectRoles.Select(r => r.Role.RoleName).ToArray());
                }
            }
            string[] empty = new string[0];

            return(empty);
        }
コード例 #4
0
        public static int setUserSession()
        {
            WinAuthAndAzureAuthTestForURCSEntities db = new WinAuthAndAzureAuthTestForURCSEntities();

            //Gobal vars for user info
            string username = "";
            string usernameSplit;

            //Used for Windows auth

            username = HttpContext.Current.User.Identity.Name;
            if (!string.IsNullOrWhiteSpace(username))
            {
                usernameSplit = username.Split('\\')[1];

                HttpContext.Current.Session["username"] = usernameSplit;
                try
                {
                    UserAccount user = db.UserAccounts.Where(u => u.UserName == usernameSplit).FirstOrDefault();
                    HttpContext.Current.Session["userID"]     = user.UserAccountID;
                    HttpContext.Current.Session["firstName"]  = user.FirstName;
                    HttpContext.Current.Session["lastName"]   = user.LastName;
                    HttpContext.Current.Session["RequestURL"] = string.Format("{0}://{1}/", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Authority);
                    return((Int32)HttpStatusCode.OK);
                }
                catch
                {
                    HttpContext.Current.Session["firstName"] = "";
                    HttpContext.Current.Session["lastName"]  = username;
                    return((Int32)HttpStatusCode.Unauthorized);
                }
            }

            //If win auth fails use OAuth
            else
            {
                try
                {
                    var claimsPrincipalCurrent = ClaimsPrincipal.Current;
                    var email = claimsPrincipalCurrent.FindFirst("preferred_username").Value;
                    try
                    {
                        UserAccount user = db.UserAccounts.Where(u => u.Email == email).FirstOrDefault();
                        AddCurrentUserToRoles(user);
                        HttpContext.Current.Session["username"]   = user.UserName;
                        HttpContext.Current.Session["userID"]     = user.UserAccountID;
                        HttpContext.Current.Session["firstName"]  = user.FirstName;
                        HttpContext.Current.Session["lastName"]   = user.LastName;
                        HttpContext.Current.Session["RequestURL"] = string.Format("{0}://{1}/", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Authority);
                        return((Int32)HttpStatusCode.OK);
                    }
                    catch
                    {
                        return((Int32)HttpStatusCode.Unauthorized);
                    }
                }
                catch (NullReferenceException e)
                {
                }
            }

            return((Int32)HttpStatusCode.Unauthorized);
        }