雖然上面的答案有助於解決我的問題,但我會爲那些有類似問題的人添加更多的細節。
在含aspx頁面我爲表單添加標籤內的用戶名和密碼兩個隱藏字段:
<form id="form1" style="height:100%" action="http://mysite.com/Login.aspx" method="post">
<input type="hidden" id="username" name="username" />
<input type="hidden" id="password" name="password" />
<div>silverlight app</div>
</form>
然後在當服務成功返回我的Silverlight應用程序添加以下代碼,以登錄到網站應用:
private void Logon(string username, string password)
{
HtmlElement usernameField = HtmlPage.Document.GetElementById("username");
usernameField.SetAttribute("value", username);
HtmlElement passwordField = HtmlPage.Document.GetElementById("password");
passwordField.SetAttribute("value", password);
HtmlPage.Document.Submit();
}
你可能已經高於注意到我已刪除上面的表格標記RUNAT =「服務器」。我必須這樣做,因爲我在發佈的登錄頁面上收到「驗證ViewState MAC失敗」錯誤。起初,我嘗試添加這在web.config:
<pages enableViewState="false" enableEventValidation="false" viewStateEncryptionMode="Never" enableViewStateMac="false"/>
但沒有作出任何區別這些選項。當然,如果您使用的是正常的HTML頁面,那麼這不會成爲問題。
不錯。我甚至沒有考慮使用包含aspx頁面。我會放棄它。 – 2011-05-22 22:38:15
是的,這個工程。 – 2011-05-22 23:45:40