2013-01-18 72 views
0

我有一個問題:爲ObjectDataSource控件ASP .NET中使用web服務的憑證

我有web服務,需要用戶名和密碼(基本/ Windows身份驗證)

我已經安裝使用Visual Studio 2010中的一個Web項目「添加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"] = "[email protected] 

    } 

現在我的問題是如何在使用ObjectDataSource調用getUserByEmail方法時傳遞webservice登錄憑據?

感謝您的幫助提前

回答

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

免責聲明:未經測試的代碼 - 只是爲了得到解決的想法

+0

感謝您的反饋意見。這就是我最終做的... – subsoft