我有一個處理表單帖子的動作,但我想確保他們在動作之前進行了身份驗證。問題是發佈數據丟失,因爲他們將用戶重定向到登錄頁面,然後返回。ASP.NET MVC在授權後保留髮布數據
[AcceptVerbs(HttpVerbs.Post)]
[Authorize]
public ActionResult AskQuestion(string question)
{
....
}
任何想法?
Cheers
我有一個處理表單帖子的動作,但我想確保他們在動作之前進行了身份驗證。問題是發佈數據丟失,因爲他們將用戶重定向到登錄頁面,然後返回。ASP.NET MVC在授權後保留髮布數據
[AcceptVerbs(HttpVerbs.Post)]
[Authorize]
public ActionResult AskQuestion(string question)
{
....
}
任何想法?
Cheers
您需要將表單值和RedirectUrl序列化爲隱藏字段。
認證反序列化隱藏字段中的數據並根據RedirectUrl的值重定向後。
您將需要一個自定義的授權類來處理此問題。
POST通常用於添加,更新或刪除數據。當用戶這樣做時,如果需要身份驗證,則應該已經對其進行身份驗證。所以我建議您在POST之前更改應用程序的流程以進行身份驗證。
您還可以使用session來保存信息...
雖然我與你說的話,我不同意應該配置的用戶數據的原則達成一致。它應該被保留,但在用戶可以被認證之前不會被採取行動。否則,當會話超時等事件發生時,這會造成無益的用戶體驗。 – 2008-12-18 12:35:45
我不是建議應該丟棄數據。我建議在開始收集這些數據之前,先對用戶進行身份驗證。例如,不是呈現表單,而是呈現表單的鏈接,並且如果用戶還沒有被認證,則首先將其帶到登錄屏幕。最好先讓他們進行認證,因爲如果在填寫表格之後,他們需要在提交之前進行提名/認證,那麼用戶會感到非常惱火。如果他們不想在那個時候註冊,那麼該網站已經讓他們浪費了時間。 – RedFilter 2010-02-26 12:27:49