sessionpersonalizationprovider.cs

来自「一个AJAX框架」· CS 代码 · 共 65 行

CS
65
字号
using System;
using System.Web;
using System.Web.UI.WebControls.WebParts;
using System.Web.Hosting;

public class SessionPersonalizationProvider : PersonalizationProvider
{
	protected override void LoadPersonalizationBlobs(WebPartManager webPartManager, string path, string userName, ref byte[] sharedDataBlob, ref byte[] userDataBlob)
	{
		object blob = HttpContext.Current.Session[path];
		if (blob != null)
		{
			userDataBlob = (byte[])blob;
		}
	}

	protected override void ResetPersonalizationBlob(WebPartManager webPartManager, string path, string userName)
	{
		SavePersonalizationBlob(webPartManager, path, userName, null);
	}

	protected override void SavePersonalizationBlob(WebPartManager webPartManager, string path, string userName, byte[] dataBlob)
	{
		HttpContext.Current.Session.Add(path, dataBlob);
	}

	private string _applicationName;
	public override string ApplicationName
	{
		get
		{
			if (string.IsNullOrEmpty(_applicationName))
			{
				_applicationName = HostingEnvironment.ApplicationVirtualPath;
			}
			return _applicationName;
		}
		set
		{
			_applicationName = value;
		}
	}

	public override int GetCountOfState(PersonalizationScope scope, PersonalizationStateQuery query)
	{
		throw new NotImplementedException();
	}

	public override PersonalizationStateInfoCollection FindState(PersonalizationScope scope, PersonalizationStateQuery query, int pageIndex, int pageSize, out int totalRecords)
	{
		throw new NotImplementedException();
	}

	public override int ResetState(PersonalizationScope scope, string[] paths, string[] usernames)
	{
		throw new NotImplementedException();
	}

	public override int ResetUserState(string path, DateTime userInactiveSinceDate)
	{
		throw new NotImplementedException();
	}
}

⌨️ 快捷键说明

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