2011-10-20 23 views
9

私はサイトを作成しました。内部サイトです。これは.NET 4.0サイトです。私は、サイトを閲覧している人のHttpContext.Current.User.Identity.Nameを使用してユーザ名を取得したいと思います。内部であるため、ログインページはありません。私は何が欠けているのか分かりません。なぜHttpContext.Current.User.Identity.Nameが空白になる

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

部分があれば必要とされ、少なくとも、

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

+0

あなたは何らかの認証を強制しないで匿名のままにしたいユーザーのログイン名を取得することはありません。 –

答えて

14

時に認証されていないことが空白アップします。

HttpContext.Current.User.Identity.IsAuthenticated 

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

4

はい、あなたが必要です:

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

と、この:私は私のWebConfigに、次の必要がありますか統合Windows認証を使用しています。その後

、あなたがログインした人のユーザー名をつかむことができるはず

いいえ、あなたは必要ありません:。

<validation validateIntegratedModeConfiguration="false" /> 
+0

webconfigをだけに変更しましたが、ユーザ名はまだありません。私のコンピュータからサイトをブラウズすると、自分のユーザ名(私はそのマシンにサインインしているユーザ)が見えます。私が何が欠けているか分からない。 – obautista

+2

IISのアプリケーションレベルでWindows統合認証を設定しましたか? – Icarus

8

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

2

IISでは、Sites \ Default Website \ [Your Website]に移動します。

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

1

私の場合、<remove name="FormsAuthentication" />の行を削除するのは、web.configです。

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

関連する問題