0
OK心中已經研究和發佈此之前想盡單建議(分別當然)我每次碰了壁Asp.net MVC RETURNURL值總是空
這是我的日誌鑑於我用ViewBag來通過RETURNURL值我已經看到了很多回答這個問題
<h2>Login</h2>
@using (Html.BeginForm("Login", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { role = "form" }))
{
@Html.AntiForgeryToken()
...............
這是登錄操作的結果
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(UserLogin login, string returnUrl="")
{
string message = "";
using (NerdsContext nc = new NerdsContext())
{
var v = nc.User.Where(a => a.email == login.email).FirstOrDefault();
if (v != null)
{
if (!v.IsEmailVerified)
{
ViewBag.Message = "Please verify your email first";
return View();
}
if (string.Compare(Crypto.Hash(login.password), v.password) == 0)
{
int timeout = login.rememberMe ? 525600 : 20; // 525600 min = 1 year
var ticket = new FormsAuthenticationTicket(login.email, login.rememberMe, timeout);
string encrypted = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted);
cookie.Expires = DateTime.Now.AddMinutes(timeout);
cookie.HttpOnly = true;
Response.Cookies.Add(cookie);
//Redirect the user to new url
if (Url.IsLocalUrl(returnUrl))
{
ViewBag.ReturnUrl = returnUrl;
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Nerd", "Home");
}
}
else
{
message = "Invalid credential provided";
}
}
else
{
message = "Invalid credential provided";
}
}
ViewBag.Message = message;
return View();
}
最後,這是我在web.confi添加的行G文件
<authentication mode="Forms">
<forms cookieless="UseCookies" loginUrl="/Account/Login" timeout="30" slidingExpiration="true" protection="All"></forms>
</authentication>
當我運行此我從來沒有實際的登錄它總是給我回到登錄頁面和RETURNURL的值總是空 那麼,什麼是怎麼回事????
你能包括'Login' GET方法(你現在的例子只有POST方法)?如果GET操作方法結果分配URL,則存在「ViewBag.ReturnUrl」值,否則爲'ViewBag'默認值。考慮使用ViewBag.ReturnUrl = Request.QueryString [「ReturnUrl」]如果你確定從查詢字符串給出的返回的URL。 –
是的我有GET操作方法public ActionResult Login(string ReturnUrl) ViewBag.ReturnUrl = ReturnUrl; return View(); }' 我會試試這個,但是我必須改變視圖中的任何東西嗎? – salRad
它沒有工作:(任何其他的想法?我覺得這裏已經失去了幾天,仍然沒有找到任何解決這個沮喪的問題 – salRad