环境之间的会话cookie问题

时间:2014-02-18 08:57:16

标签: c# asp.net-mvc session cookies selenium-webdriver

我在两台机器之间遇到了一个奇怪的问题。这两台机器都是带有Internet Explorer 11的Window 7 SP1。我使用MVC4与Visual Studio 2013和Selenium Web Driver进行Web UI测试。

当运行我的UI测试时,每个测试都必须登录系统。在我的控制器代码中,我有一个使用以下代码的方法:

private const string CurrentUserSessionKey = "CurrentUser";
private ICache _cache;

public virtual User User
{
    get
    {
        User invokingUser = null;
        if (HttpContext.Current.Session[CurrentUserSessionKey] != null)
        {
            invokingUser = HttpContext.Current.Session[CurrentUserSessionKey] as User;
        }
        return invokingUser;
    }
    set
    {
        HttpContext.Current.Session[CurrentUserSessionKey] = value;
    }
}

奇怪的是你发现它在开发环境中工作,而不是在测试环境中工作

在我的开发环境中,它记录了用户。在我的生产环境中,HttpContext.Current.Session在发布到登录控制器时似乎总是为空。

1 个答案:

答案 0 :(得分:0)

在我的测试机器中,我必须使用

<sessionState mode="InProc" timeout="20" cookieless="AutoDetect" />
Look here for more info on the SessionState directive.

允许测试运行