Live Code在IIS和ASP.NET Web Server中运行,但不在IIS Express中运行

时间:2011-04-21 11:56:41

标签: vb.net iis-express

最近安装了IIS Express我希望它能让我的生活变得更轻松,但我几乎马上就遇到了问题。

考虑以下代表一些实时代码:

Public Shared Function GetServiceId() As String

  Dim principal As MyCustomAuthentication.Principal.MyPrincipal

  principal = CType(Thread.CurrentPrincipal, MyCustomAuthentication.Principal.MyPrincipal)
  .
  .
  .
  .

End Function

在ASP.NET Web服务器(Cassini)下运行代码一切正常,我可以看到Thread.CurrentPrincipal的类型为MyCustomAuthentication.Principal.MyPrincipal。

在IIS Express下运行同一行抛出一个InvalidCastException并检查我发现它现在是System.Security.Principal.GenericPrincipal的类型,因为没有其他任何改变而引起混淆。

我可以确认MyCustomAuthentication.Principal.MyPrincipal实现了IPrincipal并记住这是Live代码,它当前已部署并正常工作。

任何人都可以了解这里发生的事情吗?

1 个答案:

答案 0 :(得分:0)

我认为你想要HttpContext.Current.User。当前用户的身份与当前线程的身份不同。