C# ASP.NET MVC 5-创建自己的登录

C# ASP.NET MVC 5-创建自己的登录,c#,asp.net-mvc-5,C#,Asp.net Mvc 5,Hy 我是MVC5(或任何其他MVC)的新手。我想通过注册创建自己的自定义登录。谁能给我指一下这个吗 登录应该有一个简单的电子邮件和密码文本框。注册应该有额外的数据,如名字/姓氏、年龄等,这些数据存储在一个表(用户)和一个下拉框中,其中包含要选择的角色(存储在表“角色”中)。成功登录/注册后,应将用户重定向到仪表板 或者有一个关于MVC5的好教程。。我刚为你找到一个 谢谢你的帮助:)试试这个 [AllowAnonymous] public ActionResult Login(string re

Hy

我是MVC5(或任何其他MVC)的新手。我想通过注册创建自己的自定义登录。谁能给我指一下这个吗

登录应该有一个简单的电子邮件和密码文本框。注册应该有额外的数据,如名字/姓氏、年龄等,这些数据存储在一个表(用户)和一个下拉框中,其中包含要选择的角色(存储在表“角色”中)。成功登录/注册后,应将用户重定向到仪表板

或者有一个关于MVC5的好教程。。我刚为你找到一个

谢谢你的帮助:)

试试这个

[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
    ViewBag.ReturnUrl = returnUrl;
    return View();
}

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
    if (ModelState.IsValid)
    {
        var user = MyViewModels.checkUser(model.UserName, model.Password);
        if (user!=null)
        {
            SignInAsync();
            return RedirectToAction("Welcome");
        }
        else
        {
            ModelState.AddModelError("", "Invalid username or password.");
        }
    }
    return View(model);
}

private void SignInAsync()
{
    var claims = new List<Claim>();
    claims.Add(new Claim(ClaimTypes.Name, "UserName"));
    claims.Add(new Claim(ClaimTypes.Email, "User@mail.com"));
    var id = new ClaimsIdentity(claims,
                                DefaultAuthenticationTypes.ApplicationCookie);

    var ctx = Request.GetOwinContext();
    var authenticationManager = ctx.Authentication;
    authenticationManager.SignIn(id);
}

[Authorize]
public ActionResult Welcome()
{
    return View();
}

你的问题有点宽泛。请阅读。您希望此注册的自定义登录做什么?它是否在注册时存储其他信息?它重定向到什么地方了吗?它跳舞吗?@Jack登录时应该只有一个电子邮件和密码文本框。注册应包含其他信息,如名字/姓氏、年龄等。这些数据应存储在名为“user”(在MS SQL Server 2012中)的表中。注册应该有一个特殊的数据:角色下拉框,用户可以在其中选择自己的角色。。这将存储在其他表(角色)中。如果用户注册成功,则应将其重定向到仪表板。当用户成功登录时,也应该重定向到仪表板。@杰克,我想,这没什么特别的。。但我不知道该怎么写。我只对普通PHP有经验:(找不到类型或命名空间名称“UserTable”(是否缺少using指令或程序集引用?@WIRN,UserTable是数据库中的表名。此表是从实体框架访问的
public static UserTable checkUser(string userName, string password)
{
    DemoEntities db = new DemoEntities();
    var query = (from u in db.UserTables
                 where u.UserName == userName && u.Password == password
                 select u).FirstOrDefault();
    if(query!=null)
        return query;
    else
        return null;
}