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="登录" />
    }
    
  • 相关阅读:
    Django 前戏
    SQL基本语句
    如何正确安装Mysql
    JQuery
    解疑答惑—解决脱离标准文档流(恶心的浮动)
    事件
    卷基于快照进行恢复
    centos7下Firewall使用详解
    基于镜像卷启动的虚机快照代码分析
    nova卸载volume源码分析
  • 原文地址:https://www.cnblogs.com/xuxuzhaozhao/p/6553303.html
Copyright © 2011-2022 走看看