0

質問があります:

ユーザー名とパスワードを必要とする Web サービスがあります (基本/Windows 認証)

「Web参照の追加」を使用してVisual Studio 2010でWebプロジェクトをセットアップしました(通常のもの…右)

ASPX コードは次のとおりです。

<asp:Repeater ID="repUnserName" runat="server" DataSourceID="objGetUserName">
    <ItemTemplate>
        Name: <span class="info">
            <%# Eval("myName")%></span>
    </ItemTemplate>
</asp:Repeater>
<asp:ObjectDataSource ID="objGetUserName" runat="server" SelectMethod="getUserNameByEmail"
    TypeName="SecureService" OnSelecting="objGetUserName_Selecting">
    <SelectParameters>
        <asp:Parameter DefaultValue="" Name="UserEmail" Type="String" />
    </SelectParameters>
</asp:ObjectDataSource>

c# コード:

protected void objGetUserName_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
    {            
            e.InputParameters["UserEmail"] = "myemail@email.com 

    }

今私の質問は、 ObjectDataSource を使用して getUserByEmail メソッドを呼び出すときに Web サービスのログイン資格情報を渡すにはどうすればよいですか?

事前にご協力いただきありがとうございます

4

2 に答える 2

0

これは私がやることになることです:

「オブジェクト作成イベント」の作成

サンプルコード:

protected void MyObjDS_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
{
MyWebService.Service webProxy = new MyWebService.Service();
webProxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
e.ObjectInstance = webProxy;
}

ソースURL: http: //paulsiu.wordpress.com/2008/08/31/error-401-when-using-objectdatasource-to-call-a-web-service/#comment-4023

于 2013-01-21T23:17:25.500 に答える
0

資格情報の受け渡しを制御するために、ページ (または一部のヘルパー クラス) にラッパー メソッドを用意することをお勧めします。例えば、

<asp:ObjectDataSource ID="objGetUserName" runat="server" SelectMethod="getUserNameByEmail"
    TypeName="PageClassName" OnSelecting="objGetUserName_Selecting">

internal static DataTable getUserNameByEmail(string email)
{
    var proxy = new SecureService();
    proxy.Credentials = new NetworkCredentials("user-name", "password");
    return proxy.getUserNameByEmail(email);
}

免責事項: テストされていないコード - 解決策のアイデアを得るために

于 2013-01-18T08:11:50.157 に答える