.Net MVC 身份验证

1.网站身份验证设置:启用匿名(禁用的时候,Action标记[AllowAnonymous]仍不能访问,暂不清楚是否有配置可以禁用时访问)、启用Forms验证

1   <system.web>
2     <authentication mode="Forms">
3       <forms loginUrl="Account/LogIn" cookieless="UseCookies" name="loginName" />
4     </authentication>
5   </system.web>

2.登录操作

        [HttpPost, AllowAnonymous]
        public ActionResult Login(string AccountNo, string Password)
        {
            //验证账号密码

            //创建身份验证票证并写入Cookie
            FormsAuthentication.SetAuthCookie(AccountNo, true);
            //返回到登录页之前的请求页
            return Redirect(FormsAuthentication.GetRedirectUrl(AccountNo, false));
        }

3.登出

        public ActionResult Logout()
        {
            FormsAuthentication.SignOut();
            return Redirect(FormsAuthentication.LoginUrl);
        }

4.注册全局过滤器AuthorizeAttribute

5.登录及验证过程(FROM:细说ASP.NET Forms身份认证):

用户登录的过程大致是这样的:
1. 检查用户提交的登录名和密码是否正确。
2. 根据登录名创建一个FormsAuthenticationTicket对象。
3. 调用FormsAuthentication.Encrypt()加密。
4. 根据加密结果创建登录Cookie,并写入Response。
在登录验证结束后,一般会产生重定向操作, 那么后面的每次请求将带上前面产生的加密Cookie,供服务器来验证每次请求的登录状态。

每次请求时的(认证)处理过程如下:
1. FormsAuthenticationModule尝试读取登录Cookie。
2. 从Cookie中解析出FormsAuthenticationTicket对象。过期的对象将被忽略。
3. 根据FormsAuthenticationTicket对象构造FormsIdentity对象并设置HttpContext.User
4. UrlAuthorizationModule执行授权检查。

5.Request上下文(HttpContextBase)的IPrincipal对象提供身份验证相关信息

@Context.User.Identity.Name  @*登录账号*@

原文地址:https://www.cnblogs.com/jskenson/p/11137354.html

时间: 2024-10-19 20:57:06

.Net MVC 身份验证的相关文章

MVC身份验证及权限管理

MVC自带的ActionFilter 在Asp.Net WebForm的中要做到身份认证微软为我们提供了三种方式,其中最常用的就是我们的Form认证,需要配置相应的信息.例如下面的配置信息: <authentication mode="Forms"> <forms loginUrl="Login.aspx" defaultUrl="Default.aspx" protection="All" /> &l

Asp.net Mvc 身份验证、异常处理、权限验证(拦截器)实现代码

本问主要介绍asp.net的身份验证机制及asp.net MVC拦截器在项目中的运用.现在让我们来模拟一个简单的流程:用户登录>权限验证>异常处理 1.用户登录 验证用户是否登录成功步骤直接忽略,用户登录成功后怎么保存当前用户登录信息(session,cookie),本文介绍的是身份验证(其实就是基于cookie)的,下面看看代码. 引入命名空间 using System.Web.Security; Users ModelUser = new Users() { ID = 10000, Nam

jwt的ASP.NET MVC 身份验证

Json Web Token(jwt)      一种不错的身份验证及授权方案,与 Session 相反,Jwt 将用户信息存放在 Token 的 payload 字段保存在客户端,通过 RSA 加密的方式,保证数据不会被篡改,验证数据有效性. 详细请参考jwt.io. 我现在还是一枚小白,希望能帮助更多的小白成长.因此文章都是一些比较简单的使用过程,文字讲解较少,怕误人子弟. 小白成长为大牛过程:知其然而不知其所引然 再知其然而知其所引然 1. 开发环境如下 vs2017+ASP.NET MV

010.MVC身份验证

一.身份验证 1.定义: 身份验证是从用户出获取表示凭据(如用户名和密码)并听过某些授权机构验证哪些凭据的过程. 配置节中存储了登录用户的信息,这种方式可以适用于小型的应用程序,实际项目中是将登录用户信息存储在关系型数据库中,例如SQL Server 2.身份验证思路: a.用户模型,控制器登陆方法,登录视图 登陆成功,记录会话.然后用户访问其它的方法,每个方法执行前都应该判断会话 问题:太麻烦 b.Controller父类实现了IActionFilter方法: 在执行每个方法之前OnActio

MVC身份验证机制

1 namespace BCPayWeb.Core 2 { 3 public class UserLoginAttribute : AuthorizeAttribute 4 { 5 protected override bool AuthorizeCore(HttpContextBase httpContext) 6 { 7 // httpContext.Session["User"] = new Users() { Id = 1, RoleId = 1 }; 8 9 if (http

转 asp.net mvc 身份验证中返回绝对路径的ReturnUrl

原文:http://www.cnblogs.com/hyl8218/archive/2011/11/22/2259116.html 从HttpUnauthorizedResult的源码可以看出,HttpUnauthorizedResult的执行很简单,就是设置当前的 HttpContext.Response的状态码为401,这样就回激活authentication module 执行它默认的 unauthorized handler,也就是跳转到登陆页面的,但是默认的跳转ReturnURL 参数

MVC过滤器---身份验证过滤器

身份验证过滤器的用法(一) 1.首先创建一个自己定义的过滤类继承MVC身份验证过滤类,重写OnAuthorization方法 public class MyAuthorization:AuthorizeAttribute { public override void OnAuthorization(AuthorizationContext filterContext) { //如果保留如下代码,则会运行.net framework定义好的身份验证,如果希望自定义身份验证,则删除如下代码 //ba

定制Asp.NET 5 MVC内建身份验证机制 - 基于自建SQL Server用户/角色数据表的表单身份验证

背景 在需要进行表单认证的Asp.NET 5 MVC项目被创建后,往往需要根据项目的实际需求做一系列的工作对MVC 5内建的身份验证机制(Asp.NET Identity)进行扩展和定制: Asp.NET内建的身份验证机制会使用Local DB(本地数据库)读写用户相关的信息,而在数据库驱动的项目中,管理业务信息的数据库通常是特定的数据库环境,比如远程SQL Server数据库实例或Access数据库等等,业务数据库中保存着一系列针对业务需求的数据表,因此需要定制MVC 5内建身份验证,使其操作

ASP.NET MVC 4 (十三) 基于表单的身份验证

在前面的章节中我们知道可以在MVC应用程序中使用[Authorize]特性来限制用户对某些网址(控制器/控制器方法)的访问,但这都是在对用户认证之后,而用户的认证则依然是使用ASP.NET平台的认证机制. ASP.NET提供Windows和Forms两种身份验证,前者主要用于Intranet上域环境内,后者则更多的应用于Internet,这里我们只讨论后者.先从最简单的例子开始,我们在web.config中配置Forms认证方式: ... <authentication mode="For