0

私は過去2日間この問題に直面しました。私のMVCプロジェクトはフォーム認証を使用しています。タイムアウトを1分に設定しました(テスト用)。タイムアウトになります。1分後にページが機能しないため。しかし、ログインページにリダイレクトする必要があります。フォーム認証でログインURLを指定しました。しかし、それは機能しません。どんな体でもこの問題の解決策を教えてください。次のようなコード

<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 に答える