Где взять учетные данные для использования для Authentication.asmx? - PullRequest
2 голосов
/ 21 ноября 2011

Для одного из наших сайтов SharePoint с поддержкой FBA нам необходим доступ к различным веб-службам. Я знаю, что нам нужно вызвать Authentication.asmx, прежде чем мы сделаем любой другой вызов веб-службы SP.

Как получить имя пользователя и пароль для входа в систему для передачи в службу Authentication.asmx?

Спасибо.

Обновление: я попробовал решение Марека с известным именем пользователя и паролем и получил 401 для Authentication.asmx. Так что, вероятно, некоторые настройки отключены. Админ смотрит на это.

1 Ответ

1 голос
/ 21 ноября 2011
MembershipUser user = Membership.GetUser();
string username = user.UserName;
string password = user.GetPassword();

Authentication auth = new Authentication();
auth.CookieContainer = new CookieContainer();
LoginResult result = auth.Login(username, password);

if (result.ErrorCode == LoginErrorCode.NoError)
{
    CookieCollection cookies = auth.CookieContainer.GetCookies(new Uri(auth.Url));
    Cookie authCookie = cookies[result.CookieName];
    Lists lists = new Lists();
    lists.CookieContainer = new CookieContainer();
    lists.CookieContainer.Add(authCookie);
    lists.GetListCollection();
}

Однако, в зависимости от настроек провайдера членства (пароль хранится в простом тексте, зашифрован или зашифрован? Требуется ли передать секретный ответ, чтобы получить пароль?) Получение пароля может быть более трудным или даже невозможным, и вам нужно будет попросить пользователя об этом.

...