- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我需要能够在看到 session 状态时进行更改。我发现了 IRequiresSessionState
标记接口(interface),但一直无法弄清楚如何使用它。我想我可能遗漏了一些明显的东西。你们中的一位 C# 大师可以给我快速的 1-2-3 步骤吗(例如)?
public interface IRequiresSessionState
放入其中。 IRequiresSessionState('abra_cadabra')
更改值。最佳答案
public class PageTools
已标记,它看起来像 public class PageTools : IRequiresSessionState
或具有两个接口(interface),public class PageTools : IRequiresSessionState, IHttpHandler
。就我而言,我的类(class)只需要标记为第一个。我的处理程序需要两者。implement
,必要的方法将添加到您的类中。或者您可以查找并手动添加它们。获得 IRequiresSessionState 标记后,您可以测试 session 状态是否为只读,如果是,则设置新的 http 处理程序。
if (context.Handler is IReadOnlySessionState
|| context.Handler is IRequiresSessionState)
{
context.Handler = Handler();
}
http 处理程序: MSDN 会告诉您很多关于 HttpHandlers 和 HttpModules 的信息。在我的例子中,我需要一个虚拟处理程序,这样我就可以访问通常只读的 session 状态 (Page_PreInit
)。所以在我的课上我添加了这个:
protected IHttpHandler Handler()
{
MyHttpHandler resourceHttpHandler = HttpContext.Current.Handler
as MyHttpHandler;
if (resourceHttpHandler != null) // set the original handler back
{
return resourceHttpHandler.OriginalHandler;
}
// at this point session state should be available
return HttpContext.Current.Handler;
}
public class MyHttpHandler : IHttpHandler, IRequiresSessionState
{
internal readonly IHttpHandler OriginalHandler;
public MyHttpHandler(IHttpHandler originalHandler)
{
OriginalHandler = originalHandler;
}
public void ProcessRequest(HttpContext context)
{
// do not worry, ProcessRequest() will not be called,
// but let's be safe
throw new InvalidOperationException(
"MyHttpHandler cannot process requests.");
}
public bool IsReusable
{
// IsReusable must be set to false since class has a member!
get { return false; }
}
}
Here 是对一个非常优雅的 HttpModule 类的引用,我从中获得了很多或使用过的东西。我希望这可以帮助别人。
关于c# - IRequiresSessionState - 我该如何使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1375627/
我已经为此苦苦挣扎了一段时间。 我使用以下代码实现了一个基本的 IHttpHandler,SESSION 不断更新: namespace ClassLibrary1 { public clas
我需要能够在看到 session 状态时进行更改。我发现了 IRequiresSessionState 标记接口(interface),但一直无法弄清楚如何使用它。我想我可能遗漏了一些明显的东西。你们
IRequiresSessionState 和 IReadOnlySessionState 除了无法保存对 session 变量的更改外,还有什么区别? 两者都使我能够在我的 HttpHandler
我有实现 IRequiresSessionState 的 ASHX HTTPHandler。当我调用此处理程序并在另一个窗口中调用同一应用程序的 aspx 页面时,aspx 页面在 ashx 页面完成
我的应用程序有时会在 global.asax 的 Application_OnPostAuthenticateRequest 事件中调用 Server.Transfer 来充当某种 url 重写。当发
我是一名优秀的程序员,十分优秀!