У меня есть приложение для внутренней сети, которое нуждается в контактной информации для различных мест в нашем кампусе, которые обслуживаются нашей организацией поддержки лаборатории ИТ. У нас есть корпоративный каталог, который содержит контактную информацию, поэтому я храню не фактическую контактную информацию в базе данных, а неизменный идентификатор, который служит ключом для поиска человека в нашем корпоративном каталоге (через веб-сервис). Я буду искать контактную информацию через общедоступный веб-сайт.
Проблема заключается в том, что идентификатор, который полезен для поиска в веб-каталогах, является «своего рода» неизменяемым и не является идентификатором, который я буду хранить в базе данных. Поиск в каталоге проще всего выполнить с помощью идентификатора пользователя Active Directory. То, что я буду использовать, называется уникальным идентификатором основных записей.
Мой вопрос: где наиболее разумное место для перевода MRUID в идентификатор входа Active Directory для ссылки?
Прямо сейчас я делаю перевод на уровне представления с кэшированием на уровне приложения, чтобы уменьшить количество обращений к каталогу. В настоящее время существует только один веб-сайт, но я ожидаю, что если есть другие веб-сайты, которым необходимо это сделать, я перенесу класс помощника в общую библиотеку веб-элементов управления.
Я подумал о том, чтобы поместить код на уровень данных или бизнес-уровень, но решил не делать этого из-за кэширования. Как и что вы кешируете, скорее всего, является функцией приложения, а не этих других слоев.
Меня интересовали бы другие мнения и идеи, которые я, возможно, не учел.