虽然上面的答案有助于解决我的问题,但我会为那些有类似问题的人添加更多的细节。
在含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