我試圖在我的MVC3站點中建議類似this article的建議。但是,我不確定我可以在Action中使用Response.End。Response.End在MVC3 Action中的使用
我的問題是,如果HttpContext.User == null,我該如何從我的Action返回一個401狀態碼?
public ActionResult WinUserLogOn(string returnUrl) {
var userName = string.Empty;
if (HttpContext.User == null) {
//This will force the client's browser to provide credentials
Response.StatusCode = 401;
Response.StatusDescription = "Unauthorized";
Response.End();
return View("LogOn"); //<== ????
}
else {
//Attempt to Log this user against Forms Authentication
}
您發佈的代碼似乎有問題? – vcsjones
我假設我的響應代碼和描述將在覆蓋視圖返回時被覆蓋。 –
雖然m.edmondson對他的回答是正確的,但是Response.End()會將所有內容全部清除並殺死線程,因此,在Response.End後執行的操作並不重要,除非通過' 。這不像答案提供的那樣清楚。 – vcsjones