【问题标题】:Silverlight 'user initiated' security feature explainedSilverlight“用户启动”安全功能解释
【发布时间】:2011-02-03 01:56:59
【问题描述】:

在为 Silverlight 平台编程时,我发现我无法在同一个用户启动事件中调用两个需要用户启动的函数,一个接一个。

例如,假设我想在同一个按钮单击事件中调用 IsolatedStorage.IncreaseQuotaTo 和 SaveFileDialog.ShowDialog。我不能,因为如果调用了 increaseQuotaTo,那么 showdialog(或 openfile)调用会引发“必须由用户启动”异常。问题是它是用户启动的,只是它之前调用了用户启动的函数。

在用户启动的事件中,我应该能够根据需要调用任意数量的“仅限用户启动”函数,但是,我仅限于一个。 Silverlight 似乎正在监视这些函数的调用堆栈,并确保只有一个被执行。

这是一个错误吗?

【问题讨论】:

    标签: silverlight silverlight-4.0


    【解决方案1】:

    作为designed。 ;-)

    【讨论】:

    • +1。超时是与您的问题真正相关的位 - 基本上,当用户在 Iso Store 增加配额对话框上单击确定时,超时可能已过期,因此 SFD.ShowDialog 已超过超时,因此不是用户启动的。这是故意的,因此您不能例如向用户发送数十条“增加配额”提示的垃圾邮件,直到他们只是说“哦,无论如何,当然”作为一个例子。因此,更多的是时间而不是调用次数,碰巧这些调用中的大多数都涉及 UI,因此最终需要足够长的时间才能启动超时。
    • @Austin:我想你会发现第 4 点也很相关。
    • 这是一篇来自 PM 的关于 silverlight 的不错的博客文章,我以前没有遇到过。出于这个原因,我会拒绝投反对票。然而,一个简单的“阅读这个”答案通常会得到我的反对。
    • @AnthonyWJones。我理解,但我不同意。必要时我会提供非常详尽的答案,但在这种情况下,博客条目给出了一个非常可靠的答案,所以恕我直言,无需进一步阐述;-)
    • 还有很多其他人会同意你的看法。作为一个长期用户,我喜欢 SO 实际上有答案的想法,而不是成为答案链接的启动板。不幸的是,时间不可避免地影响了答案的质量。我倾向于妥协并找到可以接受的一些非常简短的概要,这些概要是在提供的链接末尾找到的。这应该有助于在将来链接断开时找到相同的内容。但是,在我看来,仅“单击此”的“答案”仍然是完全不可接受的。
    猜你喜欢
    • 1970-01-01
    • 2011-05-12
    • 2014-03-21
    • 2023-01-10
    • 1970-01-01
    • 2017-09-26
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多