WindowsIdentity.GetCurrent は、ASP.NET 偽装が無効になっている場合は、ワーカープロセスを実行しているアカウントの WindowsIdentity オブジェクトを取得します。
Page.User.Identity は、現在ページ要求を行っているユーザーを表す ID オブジェクトを取得します。ただし、それらの中身は ASP.NET が書き換えており、特に Name は、匿名アクセスの場合は空文字になります。
詳しくは以下の記事を見てください。
ASP.NET の ID オブジェクト
http://surferonwww.info/BlogEngine/post/2014/01/20/id-objects-in-aspnet-page.aspx
なので、質問者さんの状況(WindowsIdentity.GetCurrent が質問者さんの Windows アカウント、User.Identity.Name が空)から想像すると、Web アプリを Visual Studio から IIS Express で動かしていて、匿名アクセスをしているということになります。
ただし、
Windows認証のみ有効(その他無効)
というのが間違いないとすると解せません。「その他無効」は間違いないですか?
IIS Express は自分は使ってないので認証関係をどのように設定するのか知りませんが、IIS の場合はデフォルトで「匿名認証」が有効になっており、「匿名認証」の方が優先されます(Windows 認証になりません)。そういうことになっていないでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/24 06:04
退会済みユーザー
2016/10/24 06:49
2016/10/24 09:34
退会済みユーザー
2016/10/24 10:43
2016/10/25 00:28
退会済みユーザー
2016/10/25 01:03