2011-02-16 58 views
0

當用戶單擊按鈕時,有以下代碼可將請求從'http'切換到'https'。這是爲了在發送到服務器之前保護用戶/密碼信息。在服務器中,應該調用與該按鈕關聯的代碼,但沒有這樣做。在不屬於Umbraco的頁面上,此代碼正常工作。Umbraco切換到https並在登錄時調用事件背後的代碼

控制:

<asp:ImageButton ID="btnLogin" runat="server" OnClick="btnLogin_Click" ... /> 

後面的代碼:

protected void Page_Load(object sender, EventArgs e) 
{ 
    PostBackOptions pbOptions = new PostBackOptions(btnLogin); 
    pbOptions.ActionUrl = Request.Url.ToString().Replace("http://", "https://"); 
    btnLogin.Attributes.Add("onclick", "this.disabled = true; + Page.ClientScript.GetPostBackEventReference(pbOptions) + ";"); 
} 

protected void btnLogin_Click(object sender, ImageClickEventArgs e) 
{ 
    want to execute that code 
} 

如果把這個代碼一把umbraco頁面,當點擊登錄按鈕將該請求更改爲「https」時,頁面崗位服務器但不調用btnLogin_Click事件。

有什麼需要改變,使這項工作在Umbraco?有沒有人知道一個解決方案/解決方法,使'btnLogin_Click'被執行?或者我有什麼想法可以找到問題?

感謝

+0

的 'WebForm_DoPostBackWithOptions' 似乎並不在一把umbraco工作。爲了執行'http'到'https'的更改,必須欺騙呼叫將'theForm.action'更改爲https。 – Riga 2011-03-10 11:45:45

回答

0

你有沒有嘗試添加在你的Page_Load:

btnLogin_Click += new ImageClickEventHandler(btnLogin_Click); 

您可能需要添加這一點,因爲除非你有AutoEventWireup =「真」在你的用戶控件/母版聲明中指定,它贏得不會在回發中自動發起。

HTH,

本傑明

+0

是的,AutoEventWireup =「true」在那裏,但Umbraco是一個分開的世界,充滿了問題。無論如何,正如我所說找到了一個解決方法。謝謝。 – Riga 2011-07-05 21:44:33