Heim >Backend-Entwicklung >C#.Net-Tutorial >asp.net BasePage-Klasse + Sitzung, universelle Benutzeranmeldeberechtigungssteuerung

asp.net BasePage-Klasse + Sitzung, universelle Benutzeranmeldeberechtigungssteuerung

高洛峰
高洛峰Original
2017-01-12 14:03:101159Durchsuche

Aber viele Leute schreiben gerne Code in

protected void Page_Load(object sender, EventArgs e) 
{}

oder schreiben sogar Code in einige Schaltflächen, um festzustellen, ob die Sitzung existiert ~~
Natürlich kann dies den Effekt erzielen, das Problem ist , wenn es 1000 Seiten gibt~~ benötigen Sie Strg+C. . . Strg + V viele Male ~~~
Meine Idee ist, eine BasePage-Klasse zu schreiben, die System.Web.UI.Page erbt

public class BasePage : System.Web.UI.Page 
{ 
//pageunload事件,并不是指浏览器关闭,而是指页面关闭,所以刷新的时候,依然会执行以下事件 
protected void Page_Unload(object sender, EventArgs e) 
{ 
} 
protected override void OnPreInit(EventArgs e) 
{ 
base.OnPreInit(e); 
if (!SessionData.IsLogin()) 
{//这里写 跳转到登陆页面:例如: 
Response.Redirect(string.Format("~/ReLogin.aspx?Page={0}", Request.Path)); 
}}

Warum muss ich den Page-Parameter hierher bringen, nur um Erfolgreich angemeldet? Sie können zur Seite zurückkehren, bevor Sie sich anmelden
Außerdem habe ich auch eine SessionData-Klasse beigesteuert:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using ExpressPlatform.Common; 
namespace ExpressPlatform.Web.AppCode 
{ 
public class SessionKey 
{ 
public const string UserInfo = "user"; 
} 
/// <summary> 
/// 所有session中的数据,在该类管理 
/// </summary> 
public class SessionData 
{ 
/// <summary> 
/// 获取session 中的 用户信息 
/// </summary> 
/// <returns></returns> 
public static MdlSessionCustomerInfo GetUserInfo() 
{ 
MdlSessionCustomerInfo userInfo = SessionManager<MdlSessionCustomerInfo>.GetSessionObject(SessionKey.UserInfo); 
if (userInfo == null) 
{ 
userInfo = new MdlSessionCustomerInfo(); 
//把内容储存到应用程序 
SessionManager<MdlSessionCustomerInfo>.SetSessionObject(SessionKey.UserInfo, userInfo); 
} 
return userInfo; 
} 
/// <summary> 
/// 重新设置session 中的用户信息 
/// </summary> 
/// <param name="userInfo"></param> 
public static void SetUserInfo(MdlSessionCustomerInfo userInfo) 
{ 
SessionManager<MdlSessionCustomerInfo>.SetSessionObject(SessionKey.UserInfo, userInfo); 
} 
/// <summary> 
/// 清楚session中用户信息 
/// </summary> 
public static void ClearUserInfo() 
{ 
SessionManager<MdlSessionCustomerInfo>.SetSessionObject(SessionKey.UserInfo, null); 
} 
/// <summary> 
/// 是否登入 
/// </summary> 
/// <returns></returns> 
public static bool IsLogin() 
{ 
bool ret = false; 
MdlSessionCustomerInfo userInfo = SessionManager<MdlSessionCustomerInfo>.GetSessionObject(SessionKey.UserInfo); 
if (userInfo != null) 
ret = true; 
return ret; 
} 
} 
}
public class BasePage : System.Web.UI.Page

Für weitere asp.net BasePage-Klasse + Session-Universal-Benutzeranmeldung Artikel zum Thema Berechtigungskontrolle, bitte beachten Sie die chinesische PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn