How to add Roles to Windows Authentication in ASP.NET Core

前端 未结 3 1987
梦谈多话
梦谈多话 2021-01-31 06:40

I created an asp.net core project in visual studio 2015 with windows authentication. I can\'t figure out how to add roles to the Identity.

I have a table with usernames

3条回答
  •  面向向阳花
    2021-01-31 06:56

    this is working code that I use to check is a user is in a role \ group, please use it at your leisure

    using System.Collections.Generic;
    using System.DirectoryServices.AccountManagement;
    using System.Linq;
    using System.Security.Principal;
    
    namespace Santander.IsUserInGroupOrRole_cs
    {
    
    public class IsUserInRole
    {
        public static bool IsInGroup(string groupName)
        {
            var myIdentity = GetUserIdWithDomain();
            var myPrincipal = new WindowsPrincipal(myIdentity);
            return myPrincipal.IsInRole(groupName);
        }
    
        public bool IsInGroup(List groupNames)
        {
            var myIdentity = GetUserIdWithDomain();
            var myPrincipal = new WindowsPrincipal(myIdentity);
    
            return groupNames.Any(group => myPrincipal.IsInRole(group));
        }
    
        public static WindowsIdentity GetUserIdWithDomain()
        {
            var myIdentity = WindowsIdentity.GetCurrent();
            return myIdentity;
        }
    
        public static string GetUserId()
        {
            var id = GetUserIdWithDomain().Name.Split('\\');
            return id[1];
        }
    
        public static string GetUserDisplayName()
        {
            var id = GetUserIdWithDomain().Name.Split('\\');
    
            var dc = new PrincipalContext(ContextType.Domain, id[0]);
            var adUser = UserPrincipal.FindByIdentity(dc, id[1]);
            return adUser.DisplayName;
    
        }
    }
    }
    

提交回复
热议问题