⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formsecurity.cs

📁 1、用SQL查询器打开install目录下的dooogo.sql运行之后创建数据库dooogo。 2、然后打开web.config修改 <DbProvider type="Club.Fram
💻 CS
字号:
using System;
using System.Web;
using System.Web.Security;
using System.Security.Principal;
using Club.Framework.Components;
using Club.Framework.Configuration;
namespace Club.Framework
{
	/// <summary>
	/// FormSecurity 的摘要说明。
	/// </summary>
	public class FormSecurity
	{
		public FormSecurity()
		{

		}
		/// <summary>
		/// 验证数据通过
		/// </summary>
		/// <param name="userId">用户Id</param>
		/// <param name="userData">用户角色数据</param>
		/// <param name="IsBackUrl">是否返回原本跳转的URL</param>
		public static void Pass(string userId,string userData,bool IsBackUrl)
		{
			FormsAuthenticationTicket authTicket = new 
				FormsAuthenticationTicket(1,userId,DateTime.Now,DateTime.Now.AddMinutes(Config.Settings.CookieExpires),false,userData);
			string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
			HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName,encryptedTicket);
			HttpContext.Current.Response.Cookies.Add(authCookie);
			if(IsBackUrl)
			{
				HttpContext.Current.Response.Redirect(FormsAuthentication.GetRedirectUrl(userId,IsBackUrl));
			}
		}
		/// <summary>
		/// 登陆 1 --用户名或密码不正确 2 --未审核 3 管理员 4 --被锁定 0 --登陆成功 -1 --登陆成功 服务未启动或过期
		/// </summary>
		/// <param name="memberName"></param>
		/// <param name="password"></param>
		/// <returns></returns>
		public static int Login(string userName,string password)
		{
			if(userName==string.Empty||password==string.Empty||userName==null||password==null)
			{
				throw new AdminException("用户名与用户密码不能为空!");
			}
			int degreeID;
			int registerID;
			int returnValue=Globals.DbProvider.Login(userName,MySecurity.SEncryptString(password),System.Web.HttpContext.Current.Request.UserHostAddress,out degreeID,out registerID);
			if(returnValue==0||returnValue==-1||returnValue==4)
			{
				Pass(registerID.ToString(),degreeID.ToString(),false);
			}
			return returnValue;
		}
		/// <summary>
		/// 检查是否启动服务
		/// </summary>
		/// <returns></returns>
		public static bool IsService()
		{
			if(System.Web.HttpContext.Current.Request.Cookies["IsServic"]==null)
			{
				return false;
			}
			if(System.Web.HttpContext.Current.Request.Cookies["IsServic"].Value=="True")
			{
				return true;
			}
			return false;
		}
		/// <summary>
		/// 返回用户角色进环境用户
		/// </summary>
		public static void RequestUserRoles()
		{
			string cookieName = FormsAuthentication.FormsCookieName;
			HttpCookie authCookie = HttpContext.Current.Request.Cookies[cookieName];
			if(null == authCookie)
			{
				// 没有身份验证 cookie。
				return;
			}
			FormsAuthenticationTicket authTicket = null;
			try
			{
				authTicket = FormsAuthentication.Decrypt(authCookie.Value);
			}
			catch(Exception ex)
			{
				throw new System.Exception("用户数据验证解密过程出错!",ex.InnerException);
			}
			if (null == authTicket)
			{
				return; 
			} 
			string[] roles = authTicket.UserData.Split(new char[]{'|',','});
			FormsIdentity id = new FormsIdentity( authTicket ); 
			// 该主体将通过整个请求。
			GenericPrincipal principal = new GenericPrincipal(id, roles);
			// 将新的主体对象附加到当前的 HttpContext 对象
			HttpContext.Current.User = principal;
		}
		/// <summary>
		/// 取得通过标识
		/// </summary>
		/// <returns></returns>
		public static string GetPassID()
		{
			return HttpContext.Current.User.Identity.Name;
		}
		public static int GetMemberId()
		{
			if(HttpContext.Current.User.Identity.Name==null)
			{
				return 0;
			}
			try
			{
				return int.Parse(HttpContext.Current.User.Identity.Name);
			}
			catch
			{
				return 0;
			}
		}
		public static int GetAdminLoginId()
		{
			if(HttpContext.Current.Request.Cookies["AdminUserId"]!=null)
			{
				if(HttpContext.Current.Request.Cookies["AdminUserId"].Value!=null)
				{
					try
					{
						return int.Parse(HttpContext.Current.Request.Cookies["AdminUserId"].Value);
					}
					catch
					{
						return 0;
					}
				}
			}
			else
			{
				return 0;
			}
			return 0;
		}
		public static void SignOutAdminLogin()
		{
			HttpContext.Current.Response.Cookies["AdminUserId"].Value="";
		}
		/// <summary>
		/// 是否已验证了用户
		/// </summary>
		/// <returns></returns>
		public static bool IsAuthenticated()
		{
			return HttpContext.Current.User.Identity.IsAuthenticated;
		}
		/// <summary>
		/// 取得是否属于某角色
		/// </summary>
		/// <param name="role"></param>
		/// <returns></returns>
		public static bool IsInRole(string role)
		{
			return HttpContext.Current.User.IsInRole(role);
		}
		/// <summary>
		/// 退出验证
		/// </summary>
		public static void SignOut()
		{
			//HttpContext.Current.Response.Cookies["MemberName"].Expires = DateTime.Now.AddYears(-100);
			FormsAuthentication.SignOut();
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -