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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值