【问题标题】:Why does this cause Windows Authentication to appear and not an exception?为什么这会导致出现 Windows 身份验证而不是异常?
【发布时间】:2008-11-25 19:54:32
【问题描述】:

好的,所以在花了一天的大部分时间调试一段代码中的一个愚蠢的输入错误之后,我很好奇为什么会发生特定操作而不是异常。

首先是问题代码。

Public Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn
    Dim hl As New HyperLink
    AddHandler hl.DataBinding, AddressOf Me.BindData
    container.Controls.Add(container)
End Sub

明显的问题是我们试图将容器添加到自身,我本以为这会导致异常。但是,它反而导致页面提示用户输入他们的登录凭据(浏览器中的 Windows 身份验证)。

有谁知道为什么会这样,为什么没有发生异常或其他事情?

编辑

问题的原因是由于这个错误,页面变得无用,并提示Windows登录,并且没有给出堆栈溢出异常或任何其他异常。

【问题讨论】:

  • @the OP:如果您支持任何建设性的答案,那也没关系。但是您可能需要等待一段时间并在此期间删除选票。您的问题仅显示在“未回答”视图中,而没有得到赞成的回复,并且许多人确实遵循了该视图。
  • @Joel 不,我没有点赞...我可能不得不放弃这个。

标签: asp.net vb.net


【解决方案1】:

您希望异常发生在哪里?在此代码中,没有理由生成异常。然而,将控件嵌套在控件中可能是不合逻辑的,但它仍然有效。它不会画得很好,除非绘画/绘图层特别意识到嵌套,否则可能会导致堆栈溢出/无限循环。但这不会在这里发生,而是在布局/绘画期间发生。

【讨论】:

  • 补充说明问题,有可能是layout/paint的时候,但最终结果是这段代码没有产生异常,而是提示用户进行windows认证。跨度>
【解决方案2】:

控件是可以任意嵌套的东西;任何控件都可以包含其他控件的集合(我相信这样做的原因很明显)。话虽如此,将给定对象的引用添加到自身内部的此类对象集合中并没有什么“错误”。虽然多余,但并不例外。

【讨论】:

  • 补充说明问题,有可能是layout/paint的时候,但最终结果是这段代码没有产生异常,而是提示用户进行windows认证。跨度>
猜你喜欢
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 2013-10-18
  • 2019-06-24
  • 1970-01-01
  • 1970-01-01
  • 2018-09-06
  • 2011-01-13
相关资源
最近更新 更多