Я должен реализовать следующий сценарий: ASP.NET webapp 1. Пользователь регистрируется в 2. С учетными данными пользователя во время входа в систему мне нужно загрузить некоторые файлы с сайта Sharepoint;C# ASP.NET; Получить объект NetworkCredential для зарегистрированного пользователя?
Окружающая среда: - В настоящее время web.config настроен на олицетворение и окна auth. но также необходимо работать с базовой аутентификацией. - Я использую System.Net.WebClient для загрузки файлов Sharepoint с использованием веб-сервисов сайта Sharepoint, и для этого WebClient нужен объект Credential, поэтому мне нужен объект NetworkCredential.
P.S: CredentialCache.DefaultCredentials и CredentialCache.DefaultNetworkCredentials возвращает учетные данные с пустым именем пользователя и pw, поэтому я не могу использовать его для доступа к сайту Sharpeoint. Это также непригодно для получения System.Security.Principal.WindowsIdentity.GetCurrent() или System.Web.HttpContext.Current.User.Identity, потому что я могу получить только имя пользователя таким образом и для создания экземпляра NetworkCredential мне нужно uname и pw.
Как вы определяете, что учетные данные пусты? Документы MSDN для состояния «DefaultCredentials». Экземпляр ICredentials, возвращенный DefaultCredentials, не может использоваться для просмотра имени пользователя, пароля или домена текущего контекста безопасности ». –
Ну, во время отладки я вижу пустую строку в поле имени пользователя и пароля. Хотя на основании вашего комментария это нормально, я пытаюсь подключить сайт Sharepoint с этими учетными данными по умолчанию, и я получаю неустранимое исключение, поэтому очевидно, что учетные данные не являются зарегистрированными учетными данными пользователя, поскольку доступ к зарегистрированному пользователю сайт Sharepoint. – user1307533
Идея: поскольку я могу получить зарегистрированный идентификатор пользователя через System.Security.Princial.WindowsIdentity.GetCurrent(), есть ли способы подключения к веб-сервисам сайта Sharepoint с использованием контекста олицетворения? Я имею в виду использование WindowsIdentity.Impersonate(). – user1307533