form身份验证

asp.net  自带的身份验证,form身份验证。

forms身份验证:身份登录,权限验证,传值。

1.登录:

     验证登录是否正确,用FormsAuthentication.setAuthcookie(已验证的用户名称,是否持久)来创建一个验证的票据,用于加密存储用户登录名<Encrypt()函数加密>,存在context.user 中,并更具加密创建一个cookie.

     singout()用于注销。

2.授权:

     UrlAuthorizationModule用于权限管理,可以再config里面设置。

      <?xml version="1.0"?>

        <configuration>

        <system.web>

          <authorization>

            <allow users="*"/> //此处若有allow  必须在deny 前面!

          </authorization>

        </system.web>

        </configuration>

3.传值:

    http 协议是无状态的,无法验证访问的发起人,单项目往往需要验证是否为同一用户,但vs自带的context.user 只会存用户名,无法存储其他的信息,这时我就可以重新实现接口IPrincipal ,定义自己的context.user 来传更多的信息。

  

public class MyFormsPrincipal<TUserData> : IPrincipal where TUserData : class, new()
{
    private IIdentity _identity;
    private TUserData _userData;

public MyFormsPrincipal(FormsAuthenticationTicket ticket, TUserData userData)
    {
        if( ticket == null )
            throw new ArgumentNullException("ticket");
        if( userData == null )
            throw new ArgumentNullException("userData");

_identity = new FormsIdentity(ticket);
        _userData = userData;
    }
   
    public TUserData UserData
    {
        get { return _userData; }
    }

public IIdentity Identity
    {
        get { return _identity; }
    }

public bool IsInRole(string role)
    {
        // 把判断用户组的操作留给UserData去实现。

IPrincipal principal = _userData as IPrincipal;
        if( principal == null )
            throw new NotImplementedException();
        else
return principal.IsInRole(role);
    }

大神—超级链接:https://www.cnblogs.com/fish-li/archive/2012/04/15/2450571.html(全部学于这大佬)

原文地址:https://www.cnblogs.com/Innocent-of-Dabber/p/8438625.html

时间: 2024-08-28 08:10:21

form身份验证的相关文章

ASP.NET --Form身份验证

本文收集自----MSDN 一:Forms 身份验证流程 在 Forms 身份验证方案中,应用程序直接从用户那里收集名字和密码等凭据,并自己判断这些信息的真实性.应用程序不使用 IIS 身份验证,但 IIS 身份验证设置可以影响 Forms 身份验证.作为一项原则,当您使用 Forms 身份验证时,请在 IIS 中启用匿名访问.否则,如果用户未通过 IIS 身份验证,他们甚至无法访问应用程序以便向 Forms 身份验证提供用户名和密码. 此方案中的数据流如下图所示. Forms 身份验证 此图说

ASP.NET 中通过Form身份验证 来模拟Windows 域服务身份验证的方法

This step-by-step article demonstrates how an ASP.NET   application can use Forms authentication to permit users to authenticate   against the Active Directory by using the Lightweight Directory Access Protocol   (LDAP). After the user is authenticat

IIS身份验证的配置

前4者配置:localhost applicationHost.config <location path=""> 后2者配置:web.config 要点: 这6项尽管列在一起.但在应用上却不是一个级别的: 前4者属于IIS验证,当中匿名验证不须要提交usernamepassword,其它3个须要提供: Form身份验证属于ASP.NET验证,会通过web页面验证.要到达这个验证必须通过IIS验证(由于一个请求进入server后.先到IIS,然后才到Asp.Net应用程序)

C# MVC 基于From的身份验证

前言 昨天和一个技术比较好的前辈聊了聊,发现有的时候自己的学习方式有些问题,不知道有没有和我一样的越学习越感觉到知识的匮乏不过能认识到这个问题的同学们,也不要太心急路是一步一步走的饭是一口一口吃的认识到错误才能更高的改进错误,脚踏实地只要有上劲学习的心,终会有所成就.认识到自己薄弱的地方进行学习,要清楚学习的目的呀调理清晰:这个是什么?为什么要这样?能解决什么问题?入正题吧. 什么是身份验证 很多网站都有登陆对话框,让事先已经注册的用户验证,以便为他们提供个性化的服务等.可以把这个过程看作是两件

利用form进行身份验证

我们现在就把我们的一些流程说下:        1.用户登录,在输入框中输入用户名和密码信息 (这里要规定,用户输入网址后,只能进入登陆界面)        2.点击登录按钮后,到数据库中查询该用户是否存在 (点击按钮,后台对应的是:创建票据.发送票据.验证票据)        3 如果存在,服务器端代码就创建一个身份验证的票据,保存在cookie中,然后发送到客户端的浏览器 (        4.用户已经有了验证的cookie,那么就页面就跳转到用户之前请求的页面(票据都有保存时间,在规定的时

Asp.Net Web Api 身份验证之Form验证

1.原理是使用ActionFilterAttribute对请求进行拦截,对Cookies进行解密.登录则对用户信息进行加密保存在Cookies中. 自定义身份验证特性 [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)] public class FormAuthAttribute : ActionFilterAttribute { pu

ASP.NET Core 1.1 静态文件、路由、自定义中间件、身份验证简介

概述 之前写过一篇关于<ASP.NET Core 1.0 静态文件.路由.自定义中间件.身份验证简介>的文章,主要介绍了ASP.NET Core中StaticFile.Middleware.CustomizeMiddleware和Asp.NetCore Identity.但是由于所有的ASP.NET Core的版本有些老,所以,此次重写一次.使用最新的ASP.NET Core 1.1版本.对于ASP.NET Core 1.1 Preview 1会在以后的文章中介绍 目录 使用静态文件 使用路由

nancy中的身份验证

在nancy中,身份验证分为basic ,form ,token,stateless几种,basic和form这里不说了,其中如果是使用cookie来保存身份的, 需要注意的是:cookie有大小的限制,所以不能用来保存超过4k的信息,而且有一些js插件也要用的cookie,虽然html5好像多了.但是还是要注意一下.因为之前看到文章有的人网站有时候登陆出现问题,就是因为用户信息太大导致的. 这里说的是token的验证. ITokenizer 这个是定义token的接口,Tokenizer是它的

Shiro处理简单的身份验证的分析及实例

在两天在看Shiro,开涛兄的教程还是写的比较易读,差不多看了一天吧,就准备拿来用了. 可能是想的太简单了,在用的时候确实碰到一些问题,就拿最简单的身份验证来说吧: 需要说明的是,这里是集成在Spring中使用,身份验证我直接使用了Shiro提供的 org.apache.shiro.web.filter.authc.FormAuthenticationFilter 如果url应用了该拦截器,那么处理流程是大致这样的: 由于之前用markdown花的流程图显示不下,所以还是改成图片形式了. 比如我