【发布时间】:2015-06-12 18:39:39
【问题描述】:
我正在尝试从 VB.Net 应用程序获取客户端域\用户名。
当我使用时
System.Security.Principal.WindowsIdentity.GetCurrent().Name
我得到了我想要的结果。但只有在通过visual studio / iisexpress在本地运行时 但是当我尝试将它放在我的 IIS 7.5(在 Windows 2008 服务器上)时,程序将在运行这行代码时停止。它只是停止。
使用这个
on Error GoTo test_Error
test_Error:
Error_Handler(writes errors to a sql log)
错误未被捕获。
那么发生了什么? 谢谢!
更新: 在此处使用“Try-catch”
Try
MsgBox(System.Security.Principal.WindowsIdentity.GetCurrent().Name)
Catch ex As Exception
MsgBox(ex.Message)
End Try
仍然无法显示错误消息(Chrome 浏览器,是的,弹出窗口已启用)
使用 chrome 开发者工具,我发现这是错误:
Sys.WebForms.PageRequestManagerServerErrorException:处理服务器上的请求时发生未知错误。服务器返回的状态码是:500
【问题讨论】:
-
IIS站点配置了哪些认证方式?
-
另外,这是一种非常糟糕的错误处理方式。查看 Try / Catch 块。
-
"It just stops"- 您如何确认正是这个确切的陈述导致了问题? -
你能代替标签只做尝试 - 捕捉并获得真正的错误信息吗?
-
@Christopher:是的,我相信
WindowsIdentity真的只对 Intranet 应用程序有用。正如您所提到的,它不适用于“外部”用户,例如通过手机浏览的人。如果 Web 应用程序可供全世界访问并需要登录,您可能需要查看 ASP.NET Membership Provider 或 ASP.NET Identity 等选项。
标签: asp.net vb.net visual-studio-2012 iis