48

Silverlight アプリケーション (MVC を使用) があり、Visual Studio Development Center を使用して Visual Studio でビルドしている場合、問題はありませんHttpContext.Current.User.Identity.Name

しかし、IIS 7.5 (私は Windows 7 を使用しています) で同じプロジェクトを使用している場合、HttpContext.Current.User.Identity.Name空のままです。

助けてくれる人はいますか?または、Visual Studio 開発センターから設定を見つけることができる場所を知っているので、IIS の何が問題なのかを確認できますか?

4

11 に答える 11

54

過去数日間、この問題に苦労しました。

Scott Guthrie のブログ記事「レシピ: イントラネット ASP.NET Web アプリケーション内で Windows 認証を有効にする」を読むことをお勧めします。

私にとっての問題は、IIS で Windows 認証を有効にしていて、web.config<authentication mode="Windows" />のセクションで有効にしていたにもかかわらず、匿名アクセスを妨げていなかったことです。<system.web>この最後の部分が鍵でした。ブラウザーが資格情報を確実に送信するようにするには、匿名アクセスを防止する必要があります。

コントロール パネルで IIS を構成して、サイト (またはマシン) が Windows 認証を使用し、匿名アクセスを拒否するようにするか、system.web セクションの web.config に次を追加できます。

<authentication mode="Windows" />

<authorization>
   <deny users="?"/>
</authorization>
于 2011-03-28T12:27:38.323 に答える
8

「Bryan Bedard に 11 年 3 月 28 日 12:27 に回答」に加えて

解決策が機能しない場合は、iss マネージャーで Windows 認証を有効にする必要があります。どうやってするか:

1. [ファイル名を指定して実行] ダイアログ ボックスから IIS マネージャーを起動するには: [スタート] メニューで、[すべてのプログラム]、[アクセサリ]、[ファイル名を指定して実行] の順にクリックします。[名前] ボックスに inetmgr と入力し、[OK] をクリックします。

2. [接続] ウィンドウで、サーバー名を展開し、[サイト] を展開して、構成する階層ウィンドウのレベルに移動し、Web サイトまたは Web アプリケーションをクリックします。3. ホーム ペインの IIS セクションまでスクロールし、[認証] をダブルクリックします。

4. [認証] ウィンドウで [匿名認証] を選択し、[無効にする] をクリックします。 ここに画像の説明を入力

  1. [認証] ウィンドウで、[Windows 認証] を選択し、[有効にする] をクリックします。

参照

于 2015-09-09T15:50:27.767 に答える
7

私も最近この問題を抱えていました。新しいクライアントで作業し、Windows 認証を使用して IISExpress を使用して、Visual Studio から実行されている古い Web フォーム アプリを取得しようとしています。私にとって、web.configは正しく構成されていました

ただし、IISExpress.config 設定ファイルには次のものがありました。

<windowsAuthentication enabled="false">

開発者がログインしたユーザー アカウントは非常に新しいため、編集された可能性は低いです。簡単な修正が判明し、これを enabled=true に変更すると、すべてが正常に実行されました。

于 2014-08-28T14:13:19.370 に答える
2

IIS サーバーが同じドメインにあり、グループ ポリシー内のセキュリティ設定で許可されている場合にのみ、ブラウザーはユーザー名を検出します。

それ以外の場合は、資格情報を提供する必要がありますが、同じドメインにない場合は認証できません。

于 2009-10-15T16:10:24.043 に答える
1

前述のすべての明白な理由とは別に、別の理由がある可能性があります。次のように、コントローラーの上に Authorize 属性を配置していません。

[Authorize(Roles = "myRole")]
[EnableCors(origins: "http://localhost:8080", headers: "*", methods: "*", SupportsCredentials = true)]
public class MyController : ApiController

少なくともそれが私にとってはうまくいきました。

于 2019-03-06T08:18:29.763 に答える