2

FBA 対応の SharePoint サイトの 1 つで、さまざまな Web サービスにアクセスする必要があります。他の SP Web サービス呼び出しを行う前に、Authentication.asmx を呼び出す必要があることはわかっています。

現在ログインしているユーザーのユーザー名とパスワードを取得して Authentication.asmx サービスに渡すにはどうすればよいですか?

ありがとう。

更新: 既知のユーザー名とパスワードを使用して Marek のソリューションを試したところ、Authentication.asmx で 401 が返されました。そのため、おそらくいくつかの設定がオフになっています。管理人が検討中です。

4

1 に答える 1

1
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();
}

ただし、メンバーシッププロバイダーの設定によっては(パスワードはプレーンテキストで保存されているか、暗号化されているか、ハッシュされていますか?パスワードを取得するにはセキュリティ回答を渡す必要がありますか?)、パスワードの取得はより困難または不可能な場合があり、必要になります。ユーザーにそれを求める。

于 2011-11-21T08:29:58.277 に答える