web-dev-qa-db-ja.com

HttpContext.Current.User.Identity.Nameが空白を返すのはなぜですか

サイトを作成しました。社内サイトです。 .NET4.0サイトです。サイトを閲覧している人のHttpContext.Current.User.Identity.Nameを使用してユーザー名を取得したいと思います。内部にあるため、ログインページはありません。何が欠けているのかわかりません。 webconfigに次のものが必要ですか?

<authentication mode="Windows"></authentication>
<identity impersonate="true"/>
<authorization>
  <allow users="?"/>
</authorization>

この:

  <system.webServer>
  <validation validateIntegratedModeConfiguration="false" />
10
obautista

認証されていない場合は空白になります。これは、次の方法でも確認できます。

HttpContext.Current.User.Identity.IsAuthenticated

IISで認証レベルを確認します。そこでもWindows認証を有効にするように設定されていますか?

15
Brian Mains

Iisでは、匿名アクセスを無効にし、Webアプリケーションの統合Windowsセキュリティを有効にします。

9
Davide Piras

はい、少なくとも必要です

<authentication mode="Windows"></authentication>

統合Windows認証を使用している場合は、一部が必要です。

その後、ログインした人のユーザー名を取得できるようになります。

いいえ、必要ありません:

<validation validateIntegratedModeConfiguration="false" />
4
Icarus

IISで、[サイト]\[既定のWebサイト]\[あなたのWebサイト]に移動します。

認証オプションを選択し、匿名認証を無効にします。

2
Sreejith K.

私の場合、<remove name="FormsAuthentication" />からweb.config行を削除すると役立ちます。

<authentication mode="Forms" />セクションにも<system.web>があります。

1
1_bug