• 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="登录" />
    }
    
  • 相关阅读:
    SpringMVC上传文件的三种方式(转载)
    几种流行Webservice框架性能对比(转载)
    @QueryParam和@PathParam使用方法比较
    MyEclipse开发Rest服务入门
    WebService SOAP、Restful和HTTP(post/get)请求区别
    Java WebService入门实例
    WebService 与 Socket 区别
    Double 数据保留两位小数二:直接截取小数后面两位,不进行四舍五入
    SVN 常识
    Android 友盟分享躺过的几个坑,大坑,坑爹啊
  • 原文地址:https://www.cnblogs.com/xuxuzhaozhao/p/6553303.html
Copyright © 2020-2023  润新知