Windows 인증을 사용하는 ASP.NET MVC5 CRUD 응용 프로그램이 있고 사이트가 Active Directory 그룹에 의해 보안되어 있으면이 그룹의 모든 구성원이 동일한 권한을 갖습니다. Entity Framework 6을 사용하여 데이터베이스에 액세스하고 있습니다.MVC5 모델의 CreatedByUserId 자동 채우기
나는 이 DOMAIN\username
일 때 현재 매우 기본적인 User
모델을 가지고 있습니다. 모든 모델은 CreatedByUserId
속성을 통해이 모델을 참조합니다. 아래의 다른 모델과의 관계는 생략했습니다. 사용자 모델을 만든 Active Directory 그룹을 통해 인증
- 사용자 :
public class User { [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } [Index(IsUnique = true)] [MaxLength(100)] public string Login { get; set; } [DatabaseGenerated(DatabaseGeneratedOption.Computed)] public DateTime CreatedDatetime { get; set; } }
내가 어떻게 내 모든 컨트롤러에 코드를 반복하지 않고 내가 확실하지 오전하지만 두 가지를 달성 할 수 있도록하려면 이미 존재하지 않으면 데이터베이스에 저장됩니다.
- 새 항목이 생성되면
CreatedByUserId
은User
의 동작을 수행하는Id
으로 채워집니다.
나는 첫 번째 부분은 그들이 할 때 이미 존재하지 않는 경우 새 User
를 작성하고 Id
을 retreive 것이다 글로벌 AuthorizeAttribute
필터를 통해 달성 할 수 있으리라 생각합니다, 그러나 이것은 나중에 참조 어디에 저장해야합니다.
두 번째 부분은 확실하지 않지만 현재 사용자를 기반으로 데이터베이스를 쿼리하지 않고도이 작업을 수행 할 수 있다고 생각합니다. User
이 사이트에 액세스 할 때 Id
을 사용하여 생성자를 통해이 값을 설정할 수 있습니까?
실제 이름과 다른 세부 정보를 활성 디렉토리에서 가져 와서 'Users' 테이블을 확장 할 계획입니다. 생성 된 ID는 모든 테이블에 DOMAIN \ User를 저장하는 대신 다른 모델에서 사용됩니다. 이 애플리케이션이 생성하는 데이터는 커지지 않기 때문에'DOMAIN \ User'를 키로 저장하는 것이 문제가되지 않습니다. 데이터베이스 호출을 계속하지 않아도이를 해결하는 최선의 방법을 듣고 싶습니다. – mheptinstall