提供的防伪令牌适用于用户"

时间:2017-05-22 01:31:48

标签: asp.net-mvc entity

当我尝试进入我的系统时出现此错误。

提供的防伪令牌适用于用户" Braian",但当前用户是""。

我的控制器:

  // GET: Account
    [AllowAnonymous]
    public ActionResult Login(/*string? returnURL*/)
    {

        System.Web.Security.FormsAuthentication.SignOut();
        ModelState.Clear();
        /*Recebe a url que o usuário tentou acessar*/
        //ViewBag.ReturnUrl = returnURL;
        return View(new TB_USUARIO());
    }

 [HttpPost]
 [AllowAnonymous]
 [ValidateAntiForgeryToken]     
 public ActionResult Login(TB_USUARIO login, string returnUrl)
 {
        System.Web.Security.FormsAuthentication.SignOut();
        ModelState.Clear();
        if (ModelState.IsValid)
          {
              using (DB_DAGUILAREntities db = new DB_DAGUILAREntities())
         {
            var vLogin = db.TB_USUARIO.Where(p => p.USU_ST_LOGIN.Equals(login.USU_ST_LOGIN)).FirstOrDefault();
                   /*Verificar se a variavel vLogin está vazia. Isso pode ocorrer caso o usuário não existe. 
             Caso não exista ele vai cair na condição else.*/
             if (vLogin != null)
                  {
                     /*Código abaixo verifica se o usuário que retornou na variavel tem está 
                       ativo. Caso não esteja cai direto no else*/
                      if (Equals(vLogin.USU_CH_ATIVO, "A"))
                      {
                          /*Código abaixo verifica se a senha digitada no site é igual a senha que está sendo retornada 
                           do banco. Caso não cai direto no else*/
                         if (Equals(vLogin.USU_ST_SENHA.Trim(), login.USU_ST_SENHA))
                          {
                            FormsAuthentication.SetAuthCookie(vLogin.USU_ST_LOGIN, false);
                              if (Url.IsLocalUrl(returnUrl)
                              && returnUrl.Length > 1
                              && returnUrl.StartsWith("/")
                              && !returnUrl.StartsWith("//")
                              && returnUrl.StartsWith("/\\"))
                              {
                               return Redirect(returnUrl);
                              }
                            /*código abaixo cria uma session para armazenar o nome do usuário*/
                            Session["Nome"] = vLogin.USU_ST_NOME;
                            Session["Codigo"] = vLogin.USU_IN_CODIGO;
                            /*código abaixo cria uma session para armazenar o sobrenome do usuário*/
                            Session["Sobrenome"] = vLogin.USU_ST_LAST_NAME;
                            Session["Cargo"] = vLogin.USU_ST_CARGO;
                            Session["Especialidade"] = vLogin.USU_ST_ESPEC;
                            Session["Foto"] = vLogin.USU_ST_FOTO;

                            /*retorna para a tela inicial do Home*/
                            return RedirectToAction("Index", "Ticket");
                     }
                     /*Else responsável da validação da senha*/
                     else
                     {
                         /*Escreve na tela a mensagem de erro informada*/
                         ModelState.AddModelError("", "Senha informada Inválida!!!");
                         /*Retorna a tela de login*/
                         return View(new TB_USUARIO());
                     }
                 }
                 /*Else responsável por verificar se o usuário está ativo*/
                 else
                  {
                    /*Escreve na tela a mensagem de erro informada*/
                     ModelState.AddModelError("", "Usuário sem acesso para usar o sistema!!!");
                     /*Retorna a tela de login*/
                     return View(new TB_USUARIO());
                 }
             }
             /*Else responsável por verificar se o usuário existe*/
             else
             {
                  /*Escreve na tela a mensagem de erro informada*/
                 ModelState.AddModelError("", "E-mail informado inválido!!!");
                      /*Retorna a tela de login*/
                 return View(new TB_USUARIO());
             }
         }
     }
     /*Caso os campos não esteja de acordo com a solicitação retorna a tela de login com as mensagem dos campos*/
     return View(login);
 } 

和我的观点:

@model WebApplication3.Models.TB_USUARIO
@{
    Layout = null;
}

<link href="~/Content/bootstrap.min.css" rel="stylesheet" />


<script src="~/scripts/jquery-1.10.2.js"></script>
<script src="~/scripts/bootstrap.min.js"></script>


@using (Html.BeginForm("Login", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal" }))
{
    @Html.AntiForgeryToken();

    @Html.ValidationSummary(true, "", new { @class = "text-danger" })

    <div class="container">
        <div class="form-login">
            <div class="panel panel-default">
                <div class="panel-heading">
                    <div class="panel-title">Login do Sistema</div>
                </div>

                <div style="padding-top:30px" class="panel-body">
                    <div style="display:none" id="result" class="alert alert-danger col-sm-12">

                    </div>

                    <div style="margin-bottom: 25px" class="input-group">
                        <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
                        @Html.EditorFor(model => model.USU_ST_LOGIN, new { htmlAttributes = new { @class = "form-control input-lg", placeholder = "E-mail", autofocus = true } })
                        @Html.ValidationMessageFor(model => model.USU_ST_LOGIN, "", new { @class = "text-danger" })
                    </div>

                    <div style="margin-bottom: 25px" class="input-group">
                        <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
                        @Html.EditorFor(model => model.USU_ST_SENHA, new { htmlAttributes = new { @class = "form-control input-lg", placeholder = "Senha" } })
                        @Html.ValidationMessageFor(model => model.USU_ST_SENHA, "", new { @class = "text-danger" })
                    </div>

                    <div style="margin-top:10px" class="form-group">

                        <div class="col-sm-12 controls">
                            <input type="submit" value="Acessar" class="btn primary btn-lg" />
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
}


@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")

问题发生在:

  1. 登录系统
  2. 退出系统
  3. 尝试使用同一用户登录。
  4. 有人可以帮忙吗?

0 个答案:

没有答案