Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在视图MVC中运行方法_C#_Asp.net Mvc_Login_Login Control - Fatal编程技术网

C# 在视图MVC中运行方法

C# 在视图MVC中运行方法,c#,asp.net-mvc,login,login-control,C#,Asp.net Mvc,Login,Login Control,我有一个我必须创建的登录页面,它已经完成了,但是我想实现一个第一次登录密码更改,我在web服务上有一个方法来检查它是否是第一次登录,还有一个方法来更改密码并保存在我的数据库中,问题是,我有一个带有两个输入框的登录页面,一个用于用户名,另一个是密码,一旦我点击“登录”,我希望它检查这是否是第一次,如果是,将当前的两个输入框更改为“插入新pwd”和“重复新pwd”,但我不知道如何实现。我假设它在视图中,但我似乎找不到任何地方。 我的看法是: @model ProjectoEscolas.Models

我有一个我必须创建的登录页面,它已经完成了,但是我想实现一个第一次登录密码更改,我在web服务上有一个方法来检查它是否是第一次登录,还有一个方法来更改密码并保存在我的数据库中,问题是,我有一个带有两个输入框的登录页面,一个用于用户名,另一个是密码,一旦我点击“登录”,我希望它检查这是否是第一次,如果是,将当前的两个输入框更改为“插入新pwd”和“重复新pwd”,但我不知道如何实现。我假设它在视图中,但我似乎找不到任何地方。 我的看法是:

@model ProjectoEscolas.Models.UserGetInfo
@{
   ViewBag.Title = "LoginEscolas";
 }
<link href="@Url.Content("~/bower_components/font-awesome/css/font-awesome.min.css")" rel="stylesheet" type="text/css" />
<link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
<link href="~/Content/login.css" rel="stylesheet" />

@using (Html.BeginForm("LoginEscolas", "Home", FormMethod.Post))
{
<body>
    <img class="logotipos" src="../Images/logotipos.png"/>
    <div class="login-form">
        <!--<img class="loginimg" src="../Images/logotipos.png">-->
        <h1>Área Privada</h1>
        <p>Para entrar na Área Privada da DGEstE, deverá escrever o Utilizador e a Palavra-Chave das aplicações da <br /> DGEEC(Ex-GEPE)</p>
        <br />            
        <div class="form-group ">
            @Html.TextBoxFor(u => u.username, new { placeholder = "Utilizador", @class = "form-control" })
            <i class="fa fa-user"></i>
        </div>
        <div class="form-group log-status">
            @Html.PasswordFor(u => u.password, new { placeholder = "Palavra-Chave", @class = "form-control" })
            <i class="fa fa-lock"></i>
        </div>
        <span class="alert">Invalid Credentials</span>
        <input type="submit" value="Log In" class="log-btn">           
        @if (ViewBag.Error != null)
        { 
            <h4 style="color:red">@ViewBag.Error</h4>
        }
    </div>
</body>
}

在您的登录Colas
操作中
检查您的数据库,查看它是否是第一次登录。为此,若用户已登录,则应在用户表中保存一个字段。如果是第一次登录,您可以将用户重定向到另一个具有不同视图的操作,比如说
ChangePassword
。现在在
ChangePassword
视图中,您可以从用户处获得新密码

[HttpPost]
public ActionResult LoginEscolas(UserGetInfo user)
{
    Debug.WriteLine("Error");
    if (user.username == null || user.password == null)
    {
        ViewBag.Error = "Insira os campos obrigatórios";
        return View(user);
    }
    else
    {
        if (isValid(Convert.ToInt32(user.username), user.password))
        {
            FormsAuthentication.SetAuthCookie(user.username, false);
            return RedirectToAction("Index", "Home");
        }
    }
    if(isFirstLogin(Convert.ToInt32(user.username), user.password)))
    {
        setFirstLogin(Convert.ToInt32(user.username));
        return RedirectToAction("ChangePassword");
    }
    return View(new UserGetInfo());
}
[HttpGet]
public ActionResult ChangePassword(int userName)
{
    var model = new UserGetInfo {
        username = username
    };
    return View(model);
}
[HttpPost]
public ActionResult ChangePassword(int userName, string newPassword)
{
    // Change user password
}
public bool isFirstLogin(int username)
{
    // Check database to see if it is first login
}
public bool setFirstLogin(int username)
{
    // Set FirstLogin to false for this user
}

这应该是两个独立的方法和视图(具有独立的视图模型)
注册
操作和
登录
action@StephenMuecke不会有注册,这是针对一家公司的,公司用户将获得na ID和密码,当他们首次登录时,他们将不得不更改密码。很抱歉没有说明清楚
[HttpPost]
public ActionResult LoginEscolas(UserGetInfo user)
{
    Debug.WriteLine("Error");
    if (user.username == null || user.password == null)
    {
        ViewBag.Error = "Insira os campos obrigatórios";
        return View(user);
    }
    else
    {
        if (isValid(Convert.ToInt32(user.username), user.password))
        {
            FormsAuthentication.SetAuthCookie(user.username, false);
            return RedirectToAction("Index", "Home");
        }
    }
    if(isFirstLogin(Convert.ToInt32(user.username), user.password)))
    {
        setFirstLogin(Convert.ToInt32(user.username));
        return RedirectToAction("ChangePassword");
    }
    return View(new UserGetInfo());
}
[HttpGet]
public ActionResult ChangePassword(int userName)
{
    var model = new UserGetInfo {
        username = username
    };
    return View(model);
}
[HttpPost]
public ActionResult ChangePassword(int userName, string newPassword)
{
    // Change user password
}
public bool isFirstLogin(int username)
{
    // Check database to see if it is first login
}
public bool setFirstLogin(int username)
{
    // Set FirstLogin to false for this user
}