簡體   English   中英

如何使用ASP.NET MVC4登錄?

[英]How to login using ASP.NET MVC4?

以下是我嘗試的一些代碼。 這是行不通的; 在“登錄”之后,用戶不會被重定向到主頁/索引頁面,但登錄頁面只是重新加載。

Web.config文件:

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" />
</authentication>

...

<defaultDocument>
  <files>
    <add value="~/Account/Login"/>
  </files>
</defaultDocument>

控制器/ AccountController.cs:

public class AccountController : Controller
{
    //
    // GET: /Account/Login
    public ActionResult Login()
    {
        return View();
    }
}

查看/帳號/的Login.aspx:

<asp:Login ID="login" runat="server" DestinationPageUrl="~/Views/Home/Index.aspx">
    ...
</asp:Login>

您使用的是ASP.NET MVC 4的Internet模板嗎? 如果沒有,我建議您使用Internet模板創建一個新的ASP.NET MVC項目,打開帳戶控制器並查看和方法。

正如@ user1正確地說,你可以這樣做的方法就是使用

 FormsAuthentication.SetAuthCookie(username, true);
 return Redirect(returnurl);

但正如您所說,您使用的是ASP.NET MVC 4.您應該使用WebSecurity Class。

例如 :

WebSecurity.Login(model.UserName, model.Password);
return RedirectToAction("Index", "Home");

大多數工作都是使用WebSecurity助手的以下方法和屬性完成的:

進一步閱讀:

我懷疑你沒有設置表單身份驗證cookie,這就是重定向不起作用的原因。 理想情況下,在您的登錄方法中,您將使用某些邏輯驗證用戶名和密碼,當您確信用戶是合法的時,您必須設置表單身份驗證cookie然后重定向用戶

FormsAuthentication.SetAuthCookie(username, true);
return Redirect(returnurl);

如果您未設置身份驗證cookie,則重定向將不起作用,因為請求仍將被視為未經身份驗證的請求,並且用戶將被發送回登錄頁面。 您可以在此處找到有關表單登錄的更多信息

http://msdn.microsoft.com/en-us/library/xdt4thhy%28v=vs.71%29.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM