2011-11-21 6 views
2

FBA対応のSharePointサイトの1つでは、さまざまなWebサービスにアクセスする必要があります。私は、他のSP Webサービスコールを行う前にAuthentication.asmxを呼び出す必要があることを知っています。Authentication.asmxに使用する認証情報を取得する場所

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

ありがとうございました。

更新:既知のユーザー名とパスワードでMarekのソリューションを試し、Authentication.asmxの401を取得しました。おそらく、いくつかの設定はオフになっています。管理者はそれを調べています。しかし

答えて

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

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

+0

ありがとうマレック。私たちは、いくつかのカスタムaspxページからWebサービスにアクセスする必要があります。 – noobDotNet

+0

PasswordFormatが "Hashed"で、EnablePasswordRetrievalがweb.configでfalseに設定されています。これを回避する方法はありますか?ありがとう。 – noobDotNet

+0

@noobDotNetパスワードをハッシュすることは、セキュリティ上の観点からは最適ですが、データベースからパスワードを取得することもできません。単一の専用アカウントを使用してすべてのWebサービス呼び出しを行うことができます? –

関連する問題