Tag: session state

在.NET ASMX Web服务中获取会话

我的ASP.NET Web应用程序旁边有一个ASMX Web服务。 现在,我需要将用户会话引入Webservice。 为了测试这个我做了这个简单的方法: [WebMethod(EnableSession = true)] public string checkSession() { return HttpContext.Current.Session[“userid”].ToString(); } 所以,首先我登录我的网络应用程序,然后在浏览器中转到我的webservice并在该自动生成的测试页面上单击“checkSession”。 我在3台电脑上测试了这个。 所有这3个都可以正常使用webapp(因此正在创建会话等),其中2个在调用webmethod时返回Session [“userid”]的值,但最后一台计算机返回“对象引用未设置为对象的实例“因为Session是null。 那么,这些计算机之间的区别是什么?为什么我的ASP.NET应用程序可以在所有计算机上获得会话但是webservice不能?

MVC自定义身份validation,授权和角色实现

请耐心等待我提供详细信息… 我有一个MVC站点,使用FormsAuthentication和自定义服务类进行身份validation,授权,角色/成员资格等。 认证 登录有三种方式: (1)电子邮件+别名 , (2)OpenID ,以及(3)用户名+密码 。 这三个人都获得了一个auth cookie并开始一个会话。 前两个是访问者使用(仅限会话),第三个是作者/ admin使用数据库帐户。 public class BaseFormsAuthenticationService : IAuthenticationService { // Disperse auth cookie and store user session info. public virtual void SignIn(UserBase user, bool persistentCookie) { var vmUser = new UserSessionInfoViewModel { Email = user.Email, Name = user.Name, Url = user.Url, Gravatar = user.Gravatar }; […]

Web API服务 – 如何使服务器上的请求同时执行

我正在使用由IIS 7.5托管的WebApirest服务控制器,我从这篇文章中了解到: 是否所有Web请求都是并行执行的并且是异步处理的? 默认情况下, webApi服务并行执行所有传入请求, 但 前提是当前多个请求 (在特定时间)来自不同的会话。 也就是说,如果单个客户端将同时向服务器发送一些请求,则所有这些请求将按顺序执行,并且不会同时执行 。 这种行为对我们来说是一个真正的问题 ,因为在某些情况下,我们的客户端会异步地(通过浏览器)从不同客户端的侦听器发送大量请求,并且所有这些请求实际上都会排队,而不是在服务器上同时执行 。 因此,在某些情况下,我们遇到了严重的性能问题 ,这些问题在客户的网页上非常明显。 我们怎样才能解决这个问题? 我知道我们可以禁用会话状态,但这不是正常的事情。

ASP.NET – Javascript timeOut警告基于web.config中的sessionState timeOut

问题:我希望在asp.net页面上创建一个超时警告消息,其中ac#代码基于我的webconfig sessionState TimeOut属性。 web.config上的代码:

IRequiresSessionState与IReadOnlySessionState

IRequiresSessionState和IReadOnlySessionState之间有什么区别,除了第二个不能保存对会话变量的更改? 两者都为我提供了在HttpHandler访问会话变量的能力。 但为什么我更喜欢IReadOnlySessionState ? 它只是限制我保存下一个请求的会话。 或者它是否比IRequiresSessionState具有性能优势? 我什么时候更喜欢在IRequiresSessionState上使用IReadOnlySessionState ?

检测ASP.NET MVC上的会话到期

我建立了一个购物车,使用会话状态来保存购物车数据,同时用户正在浏览商店。 我有一个问题,如果我在购物车的step1上长时间打开浏览器窗口,然后按“转到第2步”,我的操作会抛出错误,因为step2操作假定会话未过期且ShopCart对象处于正确状态。 我希望这个场景对我的用户更好,但我想我需要以某种方式检测会话是否已过期,以便在下一个请求时我可以将它们抛给Step1。 我发现以下代码声称要解决问题,但它对我不起作用。 IsNewSession条件为真,但条件 if ((null != sessionCookie) && (sessionCookie.IndexOf(“ASP.NET_SessionId”) >= 0)) { // handle expired session } 始终返回false,它永远不会处理无效会话。 我糊涂了。 这在ASP.NET(和MVC)中是否可行?