다음과 같은 User.Identity.IsInProjectGroup(1)
을 수행하여 사용자가 프로젝트 그룹에 있는지 확인할 수 있도록 클레임을 추가하거나 ID를 확장 할 수있는 방법은 다음과 같이 ApplicationUser
클래스입니다.ASP MVC 5 - ID 2.0 확장
현재 데이터베이스를 계속 방문하여 사용자를 얻고 IsInProjectGroup
메서드를 호출해야합니다.
public class ApplicationUser : IdentityUser
{
public ApplicationUser()
{
Id = Guid.NewGuid().ToString();
Groups = new Collection<Group>();
}
public string FirstName { get; set; }
public ICollection<Group> Groups { get; set; }
public bool IsInProjectGroup(int projectId)
{
return Groups.Any(g => g.Projects.Select(x => x.Id).Contains(projectId));
}
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// how do you add claim???
userIdentity.AddClaim(new Claim("Group", ???));
return userIdentity;
}
}
클레임을 추가하여 메소드를 호출하는 방법이 있습니까? 아니면이를 수행하는 다른 방법이 있습니까?
아래의 확장 메서드의 주장 확인하기 위해 내 ApplicationUser
클래스 내부에 이러한 주장을 추가하는 방법과 방법하지만 확실 다음과 같이 내가 확장의 생각 : 여기
namespace App.Extensions
{
public static class IdentityExtensions
{
public static bool IsInProjectGroup(this IIdentity identity, int projectId)
{
// how would i do the check here???
}
}
}
생성시 ID에 소유권 주장을 추가하기 만하면됩니다. – Nkosi
@ Nkosi 몇 가지 코드로 보여 주실 수 있습니까? – adam78
답변을 작성했지만 코드를 변경했습니다. 그룹이나 프로젝트를 찾고 있습니까? 정확히 무엇을 원하는지 명확히하십시오. – Nkosi