У моей компании есть большое приложение, которое мы заканчиваем. Он использует WCF в качестве основы с Active Directory для аутентификации. Это прекрасно работает для одного из двух сайтов, так как модель аутентификации - Windows, и вы должны быть частью домена, чтобы войти на сайт. Вопрос, который у меня есть, относится к другому сайту, который доступен извне. Он устанавливает ClientCredentials.Windows.ClientCredential для вызова прокси-сервера с определенным пользователем / pass для олицетворения пользователя AD, поэтому работает полная модель безопасности. Это все работает точно так же, как и ожидалось.
Вопрос, который у меня возникает, заключается в том, что в Интернете я могу использовать HttpContext.Current.User.Identity.Name, чтобы получить текущего пользователя, вошедшего в систему, из части проверки подлинности с помощью форм, но для этого мне нужно убедиться, что System.Web существует ссылка на библиотеку DLL, в которой я сейчас работаю. Наши базовые объекты взяты из упрощенного класса, который не знает о System.Web. Есть ли способ узнать пользователя Forms, который вошел в этот базовый объект проекта? Я попробовал System.Security.Principal, но он дает мне доступ к учетным записям Windows только из того, что я могу сказать, и не принесет мне никакой пользы.
Я знаю, что есть возможность просто сослаться на System.Web и покончить с этим, но для меня это звучит очень круто, и это не лучший вариант, поэтому я надеюсь получить несколько советов здесь.