茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    ASP.NET MVC實現(xiàn)POST方式的Redirect
    來源:易賢網(wǎng) 閱讀:1008 次 日期:2015-08-20 15:12:12
    溫馨提示:易賢網(wǎng)小編為您整理了“ASP.NET MVC實現(xiàn)POST方式的Redirect”,方便廣大網(wǎng)友查閱!

    我們知道,在ASP.NET MVC中,要從一個Action跳轉(zhuǎn)到另一個Action,通常是用一系列以“Redirect”開頭的方法

    Redirect

    RedirectToAction

    RedirectToRoute

    之類的。

    但是使用Redirect系列的方法進行跳轉(zhuǎn)時,默認是使用GET方法的,也就是說,如果你的跳轉(zhuǎn)請求帶有參數(shù),那么這些參數(shù)將全部暴露在跳轉(zhuǎn)后的url中,增加了不安全性(特別是如果參數(shù)中包含密碼、密鑰等等敏感數(shù)據(jù))

    于是就想到了用POST方法傳遞數(shù)據(jù),這樣至少一般的訪問者無法從url中獲取敏感信息。但是仔細查閱了MSDN和StackOverflow,得到的答案是“Redirect方法不支持POST”。

    好在StackOverflow上找到一個回答 點我 ,倒是給我一些啟發(fā)。直接POST不行,那就間接POST,先通過一個GET方法獲取某個頁面,然后以這個頁面為中介將數(shù)據(jù)POST給真正要處理請求的頁面。

    下面給出一個示例代碼。在這個示例代碼中,有兩個頁面Login和AfterLogin,要求在Login中輸入用戶名和密碼后跳轉(zhuǎn)到AfterLogin,并攜帶一個由UserAppModel定義的數(shù)據(jù)列表

    public class UserAppModel

    {

    public string UserId { get; set; }

    public string ClientId { get; set; }

    public string RedirectUri { get; set; }

    }

    這些信息將在使用GET方法加載Login頁面時獲取。

    public ActionResult Login(string client_id, string redirect_uri)

    {

    HttpCookie cookie = new HttpCookie("app");

    cookie["client_id"] = client_id;

    cookie["redirect_uri"] = redirect_uri;

    Response.Cookies.Add(cookie);

    return View();

    }

    界面設(shè)計就省略了,無非是兩個文本框和一個submit按鈕。

    之后對Login要有個HttpPost方法來接收登錄數(shù)據(jù),并構(gòu)造UserAppModel的數(shù)據(jù)發(fā)到新的AfterLogin頁面。

    [HttpPost]

    public ActionResult Login(UserModel model)

    {

    if (ModelState.IsValid)

    {

    HttpCookie cookie = Request.Cookies["app"];

    if (cookie != null)

    {

    if (model.UserId == "AAA" && model.Password == "aaa")

    {

    UserAppModel newModel = new UserAppModel();

    newModel.UserId = model.UserId;

    newModel.ClientId = cookie["client_id"];

    newModel.RedirectUri = cookie["redirect_uri"];

    TempData["model"] = newModel;

    return RedirectToAction("AfterLogin", "Home");

    }

    ViewBag.Message = "Login error! Invalid user ID or password.";

    }

    }

    return View();

    }

    AfterLogin需要兩個方法,一個采用GET方式,一個采用POST方式,通過GET方式的頁面去調(diào)用POST方式的頁面,就實現(xiàn)了使用POST的重定向

    //

    // POST: /Home/AfterLogin

    [AcceptVerbs(HttpVerbs.Post)]

    public ActionResult AfterLogin(UserAppModel model)

    {

    ViewData["model"] = model;

    return View(model);

    }

    [AcceptVerbs(HttpVerbs.Get)]

    public ActionResult AfterLogin()

    {

    return AfterLogin(TempData["model"] as UserAppModel);

    }

    結(jié)論:Redirect系列方法不支持POST,但是可以通過間接的做法實現(xiàn)POST方式的重定向。

    更多信息請查看IT技術(shù)專欄

    更多信息請查看網(wǎng)絡編程
    易賢網(wǎng)手機網(wǎng)站地址:ASP.NET MVC實現(xiàn)POST方式的Redirect

    2026上岸·考公考編培訓報班

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)