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()); } }
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); } }
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); }
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); }