Kullanıcılarını bir Hizmet Hesabı aracılığıyla doğrulayan bir web uygulamasına sahibim. Yerel makinemde, orada bulunanlara ve yetkisiz kişilerin korunmasına izin verir. Ancak, bir web sunucusuna yüklediğimde, SA'yı hiç tanımıyor. Bir fikrin neden? İşte ne var:Hizmet Hesabı Yerel makinede çalışıyor ancak Web sunucusunda çalışmıyor
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;
}
Yapılandırma:
web sunucusunda<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 Özellikle bunun için kurulum havuzda Kimlik altında hizmet hesabının kimlik ve şifre ile kurulum Uygulama ama onu tanımak değil ve kimlik doğrulama sürecini asla geçmez.
Herhangi bir öneriniz var mı?
Ne demek ile yerel olarak çalışır? Yerel bir IIS'de veya geliştiricinin iis express'ini kullanıyorsunuz. Görsel stüdyo tarafından başlatılan son, windows kimlik doğrulaması için yapılandırıldı. IIS'ye dağıttığınızda, aynı ayarlara ihtiyacınız var –