1. ホーム
  2. web-config

[解決済み] VS2013でデバッグする際の認証の問題 - iis express

2022-12-08 06:50:07

質問

Visual Studio 2013 でデバッグする際に、Windows のユーザー名を取得しようとしています。私は単に使用しています。

httpcontext.current.user.identity.name

私の開発サーバー上でこれを実行すると、正常に動作します。以前のバージョンの Visual Studio でデバッグ モードでこれを実行すると、これも正常に動作します。

私の問題は、Visual Studio 2013 上でこれを実行すると、空の文字列が表示されることです。

私のウェブ設定は次のとおりです。

<system.web>
    <authentication mode="Windows"/>
    <identity impersonate="false"/>
    <authorization>
       <allow users="*"/>
    </authorization>
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
    <customErrors mode="Off"/>
</system.web>

どのように解決するのですか?

調べているうちに、自分の答えを見つけたのですが、インターネット上で答えを見つけることができないので、これを共有しようと思いました。

私は、applicationhost.config ファイルを修正することによって、問題を解決しました。私のファイルは、"My DocumentsIISExpressconfig"> フォルダに保存されていました。

VS2013がweb.configを無視し、異なる認証方法を適用していたようです。

私は、ファイルのこの部分を以下のように修正する必要がありました。実際には、anonymousAuthentication を false に、windowsAuthentication モードを true に変更しただけです。

<authentication>

  <anonymousAuthentication enabled="false" userName="" />

  <basicAuthentication enabled="false" />

  <clientCertificateMappingAuthentication enabled="false" />

  <digestAuthentication enabled="false" />

  <iisClientCertificateMappingAuthentication enabled="false">
  </iisClientCertificateMappingAuthentication>

  <windowsAuthentication enabled="true">
    <providers>
      <add value="Negotiate" />
      <add value="NTLM" />
    </providers>
  </windowsAuthentication>

</authentication>