0

在过去的两天里,我遇到了这个问题。我的 MVC 项目正在使用表单身份验证。我将超时设置为 1 分钟(仅用于测试)。它成功超时。因为一分钟后页面不起作用。但我需要重定向到我的登录页面。我在表单身份验证中提供了登录网址。但它不会起作用。任何人请建议我解决这个问题。代码如下

<authentication mode="Forms">

<forms loginUrl="~/Login/Login" path="/" timeout="1" protection="All" />

</authentication>

获取超时时,错误显示在以下代码中。通过这个错误,我发现超时将成功发生,但重定向只是一个问题。

public ActionResult Employee()
        {



            mod.StateDetails = objentity.ExecuteFunction<GetStateDetails_Result>("GetStateDetails").ToList();
            List<ObjectParameter> lstParam = new List<ObjectParameter>();
            int Divsion = Convert.ToInt32(logmodel.getDivisionId().ToString());
            ObjectParameter objparam5 = new ObjectParameter("Division", Divsion);
            lstParam.Add(objparam5);
            mod.custinfo = objentity.ExecuteFunction<GetCustomerInfoByDivision_Result>("GetCustomerInfoByDivision", lstParam.ToArray()).ToList();
            mod.SkillInfo = objentity.ExecuteFunction<GetSkillInfo_Result>("GetSkillInfo").ToList();
            mod.DivisionDetails = objentity.ExecuteFunction<GetDivisionDetails_Result>("GetDivisionDetails").ToList();
            int roleid = Convert.ToInt32(logmodel.getRoleId().ToString());
            mod.RoleId = roleid;
            return View(mod);
        }

提前致谢

4

1 回答 1

1

[Authorize]如果您希望在访问需要身份验证的控制器操作时重定向用户,则必须使用该属性装饰您的控制器操作:

[Authorize]
public ActionResult Employee()
{
    mod.StateDetails = objentity.ExecuteFunction<GetStateDetails_Result>("GetStateDetails").ToList();
    List<ObjectParameter> lstParam = new List<ObjectParameter>();
    int Divsion = Convert.ToInt32(logmodel.getDivisionId().ToString());
    ObjectParameter objparam5 = new ObjectParameter("Division", Divsion);
    lstParam.Add(objparam5);
    mod.custinfo = objentity.ExecuteFunction<GetCustomerInfoByDivision_Result>("GetCustomerInfoByDivision", lstParam.ToArray()).ToList();
    mod.SkillInfo = objentity.ExecuteFunction<GetSkillInfo_Result>("GetSkillInfo").ToList();
    mod.DivisionDetails = objentity.ExecuteFunction<GetDivisionDetails_Result>("GetDivisionDetails").ToList();
    int roleid = Convert.ToInt32(logmodel.getRoleId().ToString());
    mod.RoleId = roleid;
    return View(mod);
}

Authorize 属性将验证用户是否提供了有效的身份验证 cookie,如果没有将他重定向到您在 web.config 文件中指定的登录页面。

于 2012-07-12T07:27:27.777 回答