最近 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 を実装していることを確認できます。これはライブ コードであり、現在デプロイされ、機能しています。
ここで何が起こっているのか、誰かが光を当てることができますか?