zoukankan      html  css  js  c++  java
  • ASP.Net MVC 表单身份验证

    1、首先就是在需要身份验证后的页面的控制器加上元数据[Authorize]

    [Authorize]
    public class DeparmentController : Controller
    

    2、第二步,在web.config文件中的<system.web>节点中加入

    <authentication mode="Forms">
    <forms loginUrl="~/Home/Login" defaultUrl="~/Deparment" timeout="120" protection="All" path="/"/>
    </authentication>
    

    解释一哈上面节点的概念:在没有身份验证的情况下打开Deparment页面会跳转到loginUrl指示的页面中进行登陆,如果登陆成功则回到defaultUrl指示的页面(即Deparment页面)。

    3、在Home控制器中加入两个ActionResult,一个用来显示登录页面Login()(不需要传参的Get请求),一个用来判断传入的用户名及密码是否正确并返回页面Login(string txtUser,string txtPwd)(需要在方法的上面加上元数据[HttpPost][ValidateAntiForgeryToken])

    public ActionResult Login()
    {
        return View();
    }
    [HttpPost]
    [ValidateAntiForgeryToken]//阻止伪造的请求与view视图中的@Html.AntiForgeryToken()对应
    public ActionResult Login(string txtUser, string txtPwd)
    {
        if(txtUser=="xuxuzhaozhao" && txtPwd == "xxxx")
        {
            // 将经过身份验证的用户重定向回最初请求的 URL(也就是defaultUrl指定的页面)。
            FormsAuthentication.RedirectFromLoginPage(txtUser, false);
        }
        return View();
    }
    ---
    对应的View
    @{
        ViewBag.Title = "Login";
    }
    
    <h2>Login</h2>
    @using (Html.BeginForm())
    {
        // 生成一个隐藏的窗体字段(防伪标记),在提交窗体时将验证此字段。
        @Html.AntiForgeryToken()
        
        <input type="text" name="txtUser" />
        <input type="password" name="txtPwd" />
        <input type="submit" value="登录" />
    }
    
  • 相关阅读:
    网络流24题题解
    NOIP2018游记
    AGC016题解
    雅礼集训总结
    数学相关【真·NOIP】
    NOIP2018系列
    洛咕P4180 严格次小生成树
    矩阵乘法学习笔记
    一些比较神奇的思路
    点分治复习记
  • 原文地址:https://www.cnblogs.com/xuxuzhaozhao/p/6553303.html
Copyright © 2011-2022 走看看