我有一个运行在Windows Server 2008 R2上的IIS 7上的Web应用程序。我的应用程序的用户可以登录应用程序,默认会话超时为20分钟,在web.config文件和IIS 7上的会话设置中配置。 用户身份验证由另一台服务器上运行的活动目录域服务完成,我使用此代码实现。
代码:
public bool CheckUserInActiveDirectory(string userName)
{
try
{
string filter = "(&(objectCategory=person)(objectClass=user)(SAMAccountName=" + userName + "))";
string[] propertiesToLoad = new string[2] { "name", "PwdLastSet" };
DirectoryEntry root = new DirectoryEntry(activeDirectoryAddress);
root.AuthenticationType = AuthenticationTypes.None;
root.Username = activeDirectoryName + activeDirectoryDefaultUser;
root.Password = activeDirectoryDefaultPass;
DirectorySearcher searcher = new DirectorySearcher(root, filter, propertiesToLoad);
int count = searcher.FindAll().Count;
if (count >= 1)
return true;
else
return false;
}
catch (Exception ex)
{
throw;
}
}
由于我的应用程序服务器(使用Windows Server 2008 R2)已加入域组,因此用户会话为空,少于20分钟,其他用户的会话时间不相同,并且每次为每个用户更改。 最后,用户被重定向到登录页面。是否有任何机构知道原因并指导我如何解决问题。
代码:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["UserSession"] == null)
Response.Redirect("LoginPage.aspx");
}