0

У меня есть таблица, содержащая AD пользователей в моей базе данных. Некоторые свойства таблицы будут обновляться с использованием задания синхронизации (например, имя, фамилия, адрес электронной почты и т. Д.), А другие будут добавлены пользователями внутри моей системы, такими как первичная роль, вторичная роль, производительность OverAll и т. Д. я установить эти значения как обязательные в моем классе модели, в то время как они позволяют обнуляет внутри БД: -Как обойти обязательную аннотацию данных внутри моего метода действия

public class SyncADUsers 
{ 
    [Required] 
    [StringLength(200)] 
    public string PrimaryRole { get; set; } 

    [StringLength(250)] 
    public string SecondaryRole { get; set; } 

    [Required] 
    public int OverAllPerfomance { get; set; } 

    [Required] 
    [StringLength(50)] 
    public string FirstName { get; set; } 

    [Required] 
    [StringLength(50)] 
    public string LastName { get; set; } 

} 

Но проблема в том, что при запуске задания синхронизации он поднимет ошибку проверки первостепенную роль, Secondary role, OverAllPerformance необходимы для любого нового пользователя, который добавлен в AD и еще не добавлен в мою систему. Но мне нужно, чтобы это поле требовалось только тогда, когда пользователи пытались обновить информацию о пользователях внутри моей системы, но, пройдя эту проверку, когда работа с синхронизацией начнет работать (особенно для новых пользователей, которые добавлены в AD и еще не добавлены в моя системная база данных ..) Может ли кто-нибудь посоветовать это? Thanks

+0

Это не имеет смысла для меня - что делает работа синхронизации с вашими моделями просмотра MVC? –

+0

Извините, кажется, что я не очень изучил свой вопрос. теперь задание синхронизации обновит свойства класса модели, которые извлекаются из AD; таких как FirstName, LastName, EmailAddress, GUID –

ответ

1

Лучшим вариантом для решения вашей проблемы является создание отдельных моделей на основе реальной модели базы данных.

Я покажу вам, что я имел в виду один простой пример:

В моей пользовательской модели базы данных у меня есть: username, password и name, скажем.

Когда кто-то хочет зарегистрироваться, мне нужно, чтобы пользователь вводил все эти значения, что означает, что я могу использовать модель базы данных в представлении и контроллере, и все эти свойства будут содержать аннотацию данных [Required] (MVC). И это будет работать отлично, не так ли?

Но, когда пользователь хочет войти в систему, нам не нужен объект name. И это проблема, если мы попытаемся использовать ту же модель пользователя базы данных, что и при регистрации пользователя. Он покажет нам, что модель состояния (MVC) не действует, потому что мы имеем [Required] на имущество name, но мы не позволим ввода пользователя, в то время как при входе в

Решение:. Создать новую модель, которая будет например, используется только для знака. Эта модель будет содержать только username и password от пользователя. Чем вы можете запросить базу данных и проверить правильность комбинации имени пользователя и пароля и так далее.

+0

спасибо за ответ. но я выполняю синхронизацию не для целей авторизации. Мне нужно, чтобы она заполнила таблицу Employee внутри нашей системы HR, поэтому конечным пользователям HR не нужно вручную создавать пользователей компании ... BTW Я использую проверку подлинности Windows для входа в систему пользователи ... –

+0

Как я писал выше, я дал вам этот сценарий только для примера. Создание новых «временных» моделей сделает трюк за все. Просто создайте модель с информацией, которую вам нужно собрать, и все. –

+0

, но позвольте сказать, что я собираю AD-информацию внутри новой модели представления, которая не будет включать требуемую информацию, которую я хочу выполнить byass. то, чтобы иметь возможность сохранять данные AD внутри моей БД, мне нужно сделать это через SyncADUsers, который связан с таблицей SyncADUsers внутри моей БД?/и внутри модели SyncADUsers у меня есть Primaryrole и другая информация, как требуется .. –