以前判断用户是否登录,判断用户Session是否为空,一般会在这个页面写使用:

if (HttpContext.Session.IsNewSession)
{
//todo Login
}

每个需要验证的页面这样验证,之后.net出现Attribute之后,如果判断某个页面的访问是否登录或者其他权限,只需要:

[UserAuthentication(UserToUrlEnum = UserToUrlEnum.Login)]
public ActionResult RegisterRedirect()
{
// code
}
public enum UserToUrlEnum
{
/// <summary>
/// 登录
/// </summary>
Login,
/// <summary>
/// 注册
/// </summary>
Register,
/// <summary>
/// 认证
/// </summary>
Certificate,
}
public class UserAuthentication : AuthorizeAttribute
{
const string DOMAIN = "http://www.test.com";
public UserToUrlEnum UserToUrlEnum { get; set; }
/// <summary>
/// 构造函数
/// </summary>
public UserAuthentication()
{
this.UserToUrlEnum = UserToUrlEnum.Login;
}
/// <summary>
/// 执行前验证
/// </summary>
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (filterContext.HttpContext.Session.IsNewSession && !ClientHelper.Current.HasUser)
{
switch (this.UserToUrlEnum)
{
case UserToUrlEnum.Login:
{
VCommons.Http.CookieHelper.Write("return_page",

HttpContext.Current.Request.Url.ToString());

HttpContext.Current.Response.Redirect(DOMAIN +
"/Register/Login", true);
}
break;
case UserToUrlEnum.Register:
{
filterContext.HttpContext.Response.Redirect(DOMAIN +

"/Register/Register", true);

}
break;
}
}
else if (this.UserToUrlEnum == UserToUrlEnum.Certificate)
{
filterContext.HttpContext.Response.Redirect(DOMAIN + "/Register/Certificate");
}

}

}

最新文章

  1. podfile The dependency `` is not used in any concrete target
  2. strsep和strtok_r替代strtok
  3. 与类相关基本概念----Beginning Visual C#
  4. centos下的一些命令
  5. 使GridView可以单行横向滑动
  6. [GIF] Parenting in GIF Loop Coder
  7. java 不同意同一账户不同IP 同一时候登录系统解决的方法 兼容IE Firefox
  8. 【贪心】【HDU3177】 搬家问题
  9. 浅谈C#委托和事件
  10. Spring事务隔离级别
  11. Spring获取bean的步骤
  12. Redis主从同步要深入理解?一篇文章足矣!
  13. (poj 3662) Telephone Lines 最短路+二分
  14. 一加X 手机变砖过程
  15. codeforces-1132 (div2)
  16. 1.2 Why need pluggable?
  17. Django-3-Template模板
  18. 委托(作用:解耦),lambda的演化
  19. 2017-2018-2 20155231《网络对抗技术》实验八: WEB基础实验
  20. (转)nginx做转发时,带&#39;_&#39;的header内容丢失

热门文章

  1. [codevs3295]落单的数
  2. platform机制
  3. POJ 3468 A Simple Problem with Integers 线段树 区间更新
  4. vim recording
  5. java 小结3 hashcode和equals I/o问题
  6. Apple LLVM 6.0 Warning: profile data may be out of date
  7. 问题-Delphi在多线程中使用其他窗体上的控件,报“尚未调用CoInitialize”解决方法
  8. WEB API 用MemoryStream流做下载功能
  9. Hibernate拦截器(Interceptor)与事件监听器(Listener)
  10. 错误: 找不到或无法加载主类 / Class not found