Visual Studio 2012からVisual Studio 2013にアプリケーションをアップグレードしました。Windows認証が機能しなくなりました。以下のエラーが表示されます。
HTTP Error 401.2 - Unauthorized
You are not authorized to view this page due to invalid authentication headers.
Visual Studioには、Webサイトのプロパティ自体から認証を選択するオプションがあります。だから私は匿名アクセスを無効にし、Windows認証を有効にしましたが、以下のポップアップのようにユーザー名とパスワードを求めています。ここでドメイン資格情報を提供しても。そのポップアップがまだ何度も何度も表示されます。
Web構成:
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
<identity impersonate="false" />
<trace enabled="true" />
IIS Express aspnetConfig:
<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>
<authorization>
<add accessType="Allow" users="*" />
</authorization>
<location path="Path">
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="true" />
<anonymousAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
</location>
これに関する詳細が必要な場合はお知らせください。
更新:
Web.configから以下の行を削除すると、動作し始めることがわかりました。
<remove users="*" roles="" verbs="" />
Applicationhost.configの変更に注意してください-Visual Studio 2015では、 時々 ローカルプロジェクトディレクトリにあります。
例えば:
DRIVE:\MYPROJECT\.vs\config\applicationhost.config
どのapplicationhost構成ファイルが使用されているかわからない場合は、ProcMonを使用してファイルアクセスを監視し、「パス」に基づいて結果を絞り込み、デバッグ時にVSが実際に読み取っているものを確認できます。
更新:これはVisual Studio 2017の動作でもあるようです。
あなた自身の質問を解決したようです!よかったね。この投稿の助けに加えて、IIS Express。
編集:死んだ場合に備えて、関連するリンクから重要な情報をコピーしました。これは完全にユーザーvikomallによるものです
option-1:
編集\My Documents\IISExpress\config\applicationhost.config
ファイルおよびwindowsAuthenticationを有効にします。
<system.webServer>
...
<security>
...
<authentication>
<windowsAuthentication enabled="true" />
</authentication>
...
</security>
...
</system.webServer>
option-2:
次のように\ My Documents\IISExpress\config\applicationhost.configのwindowsAuthenticationセクションのロックを解除します
<add name="WindowsAuthenticationModule" lockItem="false" />
必要な認証タイプのオーバーライド設定を「許可」に変更します
<sectionGroup name="security">
...
<sectionGroup name="system.webServer">
...
<sectionGroup name="authentication">
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
...
<section name="windowsAuthentication" overrideModeDefault="Allow" />
</sectionGroup>
</sectionGroup>
アプリケーションのweb.configに以下を追加します
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</configuration>
以下のリンクが役立ちます: http://learn.iis.net/page.aspx/376/delegating-configuration-to-webconfig-files/
VS 2010 SP1のインストール後、Windows認証を機能させるにはオプション1 + 2の適用が必要になる場合があります。さらに、IIS Express applicationhost.configで匿名認証をfalseに設定する必要がある場合があります。
<authentication>
<anonymousAuthentication enabled="false" userName="" />
Visual Studio 2017、asp.netコアプロジェクトでは、認証はlaunchSettings.jsonでセットアップされます
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:54491/",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "api/values",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"TestAspNetCoreProd": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "api/values",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:54492"
}
}
}