2013-05-20 35 views
0

嗨,我有一些身份驗證和創建數據庫項目的問題。 在文檔中說它應該在創建之前調用認證。所以這裏是我已經完成的代碼,我不知道我是否有錯誤順序的事件。創建數據庫項目之前的身份驗證

private void ApplicationBarIconButton_Click_5(object sender, EventArgs e) 
    { 
     Gateway.AuthenticateAsync("username", "password1", "username2", "password2"); 
     Gateway.AuthenticateCompleted += new EventHandler<ServiceReference.AuthenticateCompletedEventArgs>(AuthenticateTime);  
    } 

    private DateTime _nestedDateStart; 
    private DateTime _nestedDateEnd; 
    private DateTime _nestedDateStartBreak1; 
    private DateTime _nestedDateEndBreak1; 
    private DateTime _nestedDateStartBreak2; 
    private DateTime _nestedDateEndBreak2; 

    ServiceReference.TimereportDto Timereport = new ServiceReference.TimereportDto(); 

    void AuthenticateTime(object sender, ServiceReference.AuthenticateCompletedEventArgs e) 
    { 

     Gateway.AuthenticateAsync("username1", "password1", "username2", "password2");  

     Timereport.Started = _nestedDateStart; 
     Timereport.Ended = _nestedDateEnd; 

     Timereport.Break1Start = _nestedDateStartBreak1; 
     Timereport.Break1End = _nestedDateEndBreak1; 

     Timereport.Break2Start = _nestedDateStartBreak2; 
     Timereport.Break2End = _nestedDateEndBreak2; 

     Timereport.Comment = Notes.Text; 
     Timereport.EmployeeSignature = "apptest"; 

     Gateway.CreateTimereportAsync(Timereport,"ABD"); 
     Gateway.CreateTimereportCompleted += new EventHandler<ServiceReference.CreateTimereportCompletedEventArgs>(CreateTimereportCompleted); 

    } 

    void CreateTimereportCompleted(object sender, ServiceReference.CreateTimereportCompletedEventArgs e) 
    { 

    } 

當我設置的「CreateTimereportCompleted」斷點我得到錯誤的圖像如下圖所示:

enter image description here

正如你可以看到它返回消息「拒絕訪問,請登錄第一」 。因此,因爲用戶名和密碼是正確的我認爲我必須有錯誤的順序或什麼的代碼。

UPDATE

網關是一個服務引用,看起來像這樣:

ServiceReference.GatewaySoapClient Gateway = new ServiceReference.GatewaySoapClient(); 

如果身份驗證cookie應該被傳遞到下一個服務電話,我不知道。在文檔中沒有任何說法。

他們在下面的文檔身份驗證CookieContainer,但沒有,只有當你做它的網頁瀏覽器?

任何人可以幫助我嗎?

+0

能否請你擴大問題,包括..什麼是網關對象和不它與身份驗證cookie傳遞給下一個服務調用有關? –

+0

已更新我的問題,希望它更有意義的混亂 – mogren3000

+0

GatewayAuthenticateAsync是您的WCF調用,並與WCF默認身份驗證服務或您自己的實現鏈接?或者嘗試在您的wcf代碼中爲CreateTimereportAsync調用此Authenticate,並在調用成功時查看嘗試從數據庫獲取數據。(調用WCF CreateTimereport方法內的數據庫檢索之前發生的調用以檢查它是否以此方式運行 –

回答

1

方法1: - (無通過代碼有力地傳遞cookies)

在您的ASMX web配置 添加aspNetCompatibilityEnabled = 「true」,並設置AllowCookies =假

在你ServiceReferences.ClientConfig添加AllowCookieContainer = true

方法2: - (通過代碼傳遞cookie)

在您的ASMX Web配置集AllowCookies =真 在你ServiceReferences.ClientConfig添加AllowCookieContainer =真 ,你可以設置

client.CookieContainer = yourCookieContainerVariable

,並沿着這條 'yourCookieContainerVariable' 下一個服務傳遞呼叫。

,當你有你的authenticationa ND等商務功能

一個單獨的URL作爲在描繪這種方法特別有用:http://www.kotancode.com/2010/08/06/aspnet-authentication-wp7/

相關問題