码迷,mamicode.com
首页 > 其他好文 > 详细

form身份验证

时间:2018-02-10 15:03:06      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:身份验证   arc   函数   throw   管理   lex   form   private   user   

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(全部学于这大佬)

form身份验证

标签:身份验证   arc   函数   throw   管理   lex   form   private   user   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!