1
私は、サービスアカウントを通じてユーザーを認証するWebアプリケーションを持っています。それは私のローカルマシンで完璧に動作し、そこにあるものを許可し、許可されていないものを保持します。しかし、Webサーバーにアップロードすると、SAはまったく認識されません。どんな考え?ここで私が得たものです:サービスアカウントはローカルマシンでは動作しますが、Webサーバーでは動作しません
System.Configuration.AppSettingsReader settingsReader = new AppSettingsReader();
string securityGroup = (string)settingsReader.GetValue("AUTHORIZED_USERS", "AUTHORIZED_ADMIN".GetType());
System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
System.Security.Principal.WindowsPrincipal user = new System.Security.Principal.WindowsPrincipal(identity);
//if user cannot access, notify them and close application
if (!user.IsInRole(securityGroup))
{
Response.Redirect("Unauthorized.aspx");
return;
}
設定:Webサーバー上の
<appSettings>
<add key="AUTHORIZED_USERS" value="CORP.ACME.COM\AUTHORIZED_USER"/>
<add key="AUTHORIZED_ADMIN" value="CORP.ACME.COM\AUTHORIZED_Admin"/>
</appSettings>
<system.web>
<authorization>
<allow users="*"/>
<deny users="?"/>
</authorization>
</system.web>
IISは、私は特にこのためにセットアップされているプール内のアイデンティティの下でサービスアカウントの資格情報とパスワードを使用して設定されそれを認識しておらず、決して認証プロセスを通過しません。
提案がありますか?
ローカルで実行するとどういう意味ですか?ローカルIIS上で、または開発者iis expressを使用していますか。最後のものは、Visual Studioによって開始され、Windows認証用に設定されています。 IISに展開する場合は、同じ設定が必要です –