【发布时间】:2016-05-16 08:48:04
【问题描述】:
我正在调用 RedirectToAction 方法从另一个控制器调用操作方法,但它会清除所有会话数据 我在 global.asax 中进行了调试,发现每当我调用 RedirectToAction 时,它都会调用 Session_Start() 方法。 我不知道如何调用会话开始。 这是我的表单和会话标签的网络配置代码
用于会话标签
<sessionState mode="InProc" customProvider="DefaultSessionProvider">
<providers>
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
</providers>
</sessionState>
对于表单标签
<authentication mode="Forms">
<forms loginUrl="~/ControllerName/ActionName" timeout="2880" />
</authentication>
这个“~/ControllerName/ActionName”与我调用“RedirecToAction”的方法相同
仅供参考,如果我为用户找到 cookie,他将直接从登录页面重定向到主页
这两种操作方法都在不同的控制器和不同的区域中。 这是使用“RedirecToAction”方法的代码
public class LoginController : Controller{
public ActionResult Index()
{
if (Request.Cookies["UserName"] != null && Request.Cookies["Password"] != null)
{
FillLoginSession();//Fills Session with user data ex. Session["User_Id"] = 1;
return RedirectToAction("Index", "Home", new { area = "Home" });
}
}}
这是我要重定向到的另一个控制器中的操作方法。
public class HomeController : Controller{
public ActionResult Index()
{
return View();
}}
【问题讨论】:
标签: asp.net-mvc session session-cookies session-state