传递值和临时保存值......使用会话、隐藏字段、查询字符串还是其他?
这可能是一个基本问题...但是我只是在选择解决方案而没有给它太多... 考虑一个形式网格的页面:/FormList.aspx 选择编辑表单的地方将用户重定向到一个页面:/FormEdit.aspx?Id=2 我通常可以在查询字符串中传递值,因为我检查了ID是否有效的Formedit代码.但是,哪种传递值的最佳方法是:会话或查询字符串?或其他? 用户正在编辑表单...我通常会暂时保存ID(以免再次从URL获取它).在用户表单版中,存储该值的最佳方法是什么?在会话中还是在隐藏的字段中?或其他? (当我想存储一个临时数据表时,我相信我只能使用会话,但是当它是整数值时...) 事先感谢您的建议:) 解决方案 我建议不要使用Session可以轻松,快速存储并在查询字符串或隐藏的表单字段中进行检查;您似乎在这里谈论的信息非常适合查询字符串. 请注意,Session有人尝试在不同的选项卡中一次编辑多个表单时可能会引入错误.当他们保存一个时,采用的Sessio
10 2024-04-26
编程技术问答社区
c# 如何确定特定已登录 windows 用户的会话 ID
就像标题所说的那样,我想创建一种通过domainname \ username搜索Windows用户会话ID的方法. 我已经完成了当前登录的用户的阅读,但是ID不知道确定其会话ID. 我的目标是杀死特定用户的会议. 解决方案 基于以下代码:您如何检索.NET中的登录/连接用户列表? 修改了一点,以下代码将列出登录的用户及其相应的会话ID. class Program { static void Main(string[] args) { var userLogins = new UserLogins(); // this code gets the users from localhost - // can change this to a remote hostname on the network var users = UserLogins.GetUsers("loca
12 2024-04-26
编程技术问答社区
ASP.NET MVC使用数据库表在多个向导步骤中持续保存数据
在ASP.NET MVC中使用数据库表实现数据持久性的最佳方法是什么? 目前,我们正在使用一个会话来持续多个向导步骤/视图中持续很多数据.我们正在遇到一个问题,我们怀疑应归咎于会议超时.因此,我们决定用数据库表替换会话. 到目前为止,我们已经确定我们需要以下内容: 当用户访问第一页时,唯一的ID/令牌(可能是 生成数据库主键),将确定数据在哪里 存储在整个工作流程中.此ID/令牌使用 URL,如果可能的话,这样我们就不需要重新实施会话 每个向导视图/步骤的单独表.我们已经在每个操作中实现了测试会话中存储的向导步骤对象的逻辑,以确保用户无法跳过工作流中的步骤.使用数据库数据持久性实施相似的测试将更容易,而数据分为不同的表,而不是单个表 存储与所提供的ID/令牌相关的记录中某处存储有效期的时间戳/p> 使用实体框架推动数据 我们只是很难弄清楚如何在代码中实现它.我们遇到了我们提供了下面的代码段,以提供对我们当前如何使用会话的事情的了解: 控制器
14 2024-04-26
编程技术问答社区
不能在InitializeCulture中使用Session
当我尝试在Initializululture中使用会话时,我会收到错误错误: 只有在配置文件或页面指令中设置为true时,才能使用会话状态.请确保在应用程序配置中的\\部分中包含System.Web.SessionStateModule或自定义会话状态模块. 这是抛出错误的代码 public class BasePage : Page { public string Lang { get; set; } protected override void InitializeCulture() { if (!Page.IsPostBack) { if (!string.IsNullOrEmpty(Request.QueryString["lang"])) { Session["lang"] = Request.QueryStri
8 2024-04-26
编程技术问答社区
如何在会话中存储2D字符串数组?
我有这个2D字符串数组,它正在从数据库中检索数据.问题是,当我单击一个按钮时,由于重新加载,阵列会变为空.我需要将其存储在会话中,也需要以其他您建议的其他方式存储. //Declaration in the class string[,] randomizedOptionalTable; //In the function of retrieving the database randomizedOptionalTable = new string[qIDSize, 4]; //Database retrieving code. Session["keyRandomizedOptionalTable"] = randomizedOptionalTable; 我认为我在会话中存储的只是数组的基础地址. 我希望将整个数据存储在会话中.如果你们对此有解决方案或任何不同的想法来以不同的方式存储字符串表,这确实对我有帮助. 解决方案 检查样本,为我工作...
16 2024-04-26
编程技术问答社区
实施会话数据
我有一个Web表单,可以从其默认网页中实例化类.该类像网页一样实现了会话数据,但是我正在努力使会话保持恒定. 每次页面重新加载时,它重新确定了课程,因此会议呈现我的会话的整个概念. 如何在页面本身或页面实例化的任何类中实例化会话?还是我有错误的主意? 供参考,这是页面和子类.您看到的" ..."省略了一些不必要的代码: 子类: public class invoiceHandler { public HttpContext sessionContext = HttpContext.Current; ... } 页面: public partial class _Default : Page { Program.invoiceHandler handler = new Program.invoiceHandler(); ... protected void updateactionsGridBind() {
6 2024-04-26
编程技术问答社区
在ASP.NET MVC C#中像PHP Session一样创建会话?
我在我的ASP.NET MVC应用程序中从页面重定向到页面. 当前,登录功能没有问题.登录后的预期输出是重定向到应用程序的主页. 在主页中,有一个注销按钮来销毁登录并重定向到登录页面后创建的会话. ,但是在销毁了会话之后,然后尝试将其放在浏览器https://localhost:44360/home/home的地址栏上,这是应用程序的主页.即使没有登录帐户,它也被重定向.此外,即使登录到帐户后,如果单击浏览器的后面按钮,则显示主页不应该是. . 在PHP中,登录后,创建了会话,您只需要调用该会话即可检查是否有用户,如果没有,则将您重定向到找不到的404错误页面,或者仅键入浏览器的地址栏内的链接,没有创建会话,它也会将您重定向到错误页面.我想在我的ASP.NET MVC应用程序中实现此类会话,但是如何? 这是我的代码: logincontroller.cs [HttpPost] public ActionResult Login(LoginMod
6 2024-04-26
编程技术问答社区
使用Autofac的Session-per-HttpRequest。当没有通过DependencyResolver访问ISession时,NHProf显示 "多个Session "警告
我已经成功地使用了AUTOFAC实现了每次httprequest的会话. 我对自己的实施不满意,因为我正在经历DependencyResolver,而不是依赖AutoFac提供的参数.如果我依靠AUTOFAC提供的ISession参数,那么我会收到NHPROF的警告,表明使用了多个会话.如果我经历DependencyResolver,NHProf的警告消失了,但是用法对我来说是不正确的. 我遵循了此处概述的AUTOFAC + MVC4.0指南:我还将本指南用作参考.它表明应该可以接受Isession作为构造函数参数: http://slynetblog.blogspot.com/2011/04/lightweight-nhibernate-and-aspnet-mvc.html 这是我构建AutoFac容器的方式: public class AutofacRegistrations { public static void RegisterAndSetRe
12 2024-04-26
编程技术问答社区
如何在asp.net 3.5中尽可能地延长会话时间?
i'm使用ASP.NET 3.5.我只想尽可能长时间地进行会议(浏览器关闭).在这里,我只是遵循此步骤: 1)会话超时值更改为Web配置失败. 2)使用一些外部.ASHX文件并在主页上使用JavaScript打电话,如下所示: using System; using System.Web; using System.Web.SessionState; public class SessionHeartbeat : IHttpHandler, IRequiresSessionState { public void ProcessRequest(HttpContext context) { context.Session["Heartbeat"] = DateTime.Now; } public bool IsReus
14 2024-04-26
编程技术问答社区
在使用SQL Sever会话存储时如何确定会话ID
我遵循本指南将SQL Server设置为我的会话数据商店. 我注意到会话表具有ID列.我希望我可以使用此ID列来确定使用的当前会话(在会话表中的行).但是,我不知道该ID是如何生成的,或者是如何在幕后与该ID匹配的ASP.NET Core与会话的. 我尝试使用HttpContext.Session.Id,但与数据库中的ID不同. 那么,我如何确定会话使用哪一行? 解决方案 它是随机生成的.您可以在 Middleware source if (string.IsNullOrWhiteSpace(sessionKey) || sessionKey.Length != SessionKeyLength) { // No valid cookie, new session. var guidBytes = new byte[16]; CryptoRandom.G
16 2024-04-26
编程技术问答社区
在ASP.NET MVC应用程序中设置会话持续时间在web.config中不起作用
定义问题 我发现在ASP.NET MVC应用程序中设置会话持续时间有两种方法: 在web.config file. Session_Start() Session_Start() Global.asax.cs文件中的属性. 如下所述,在实现web.config文件时,第一个方法是不起作用的,如文档,我得到HTTP 404错误: 但是,在Global.asax.cs文件中实现时,第二种方法如下: public class ApplicationName : System.Web.HttpApplication { protected void Session_Start(obj
14 2024-04-26
编程技术问答社区
词典的序列化
我有要在会话中存储的对象列表,我会这样宣布它们: Dictionary> SessionMyObjects = new Dictionary>(); 我正在阅读一些帖子,这些帖子表明词典不是序列化的,并且在会话中存储字典会导致错误.这是关于什么? 我正在使用InProc;此存储类型没有序列化?,如果代码编译,我以后还能因使用此结构而遇到一些奇怪的错误? 解决方案 Paul Welter 发表了一份好Serializabledictionary. 其他解决方案 为什么没有xmlserializable incable in in in In中的xmlserializable字典.网络?
16 2024-04-26
编程技术问答社区
用ASP.NET WebForms在iframe中记忆会话
在旧的WebForms应用中发生的奇怪行为.我不能给您链接或大图,我只能索要特定的细节,所以也许有人知道可以探索哪种方式. 域上的应用A嵌入应用程序 域B上的iframe中. (如果它将网站托管在同一域上,那么就可以了.) ) domainA.com: page1.aspx写一个会话变量: http://domainB.com/page1.aspx: HttpContext.Current.Session["UTCOffset"] = utcOffset.ToString(); 但是,在该IFRAME中的ASHX处理程序Handler.ashx无法读取会话变量值. http://domainB.com/handler.ashx: string utcOffset = Convert.ToString(HttpContext.Current.Session["UT
22 2024-04-26
编程技术问答社区
我怎样才能从处理程序页面的后面的代码中获得会话值?
我正在使用上传来上传音频文件.它使用处理程序upload.ashx将文件上传到服务器.我想在我的ASPX页面中获取文件路径.因此,我在处理程序中设置了一个会话值,以便在ASPX中获取文件路径,但我无法这样做.如何获得从处理程序到.aspx页面的文件路径的值 public class Upload : IHttpHandler,IRequiresSessionState { public void ProcessRequest (HttpContext context) { string savepath = context.Server.MapPath(tempPath); context.Session["VideoFile"] = savepath; } } 在我尝试获取文件路径 时,在我的ASPX页面中 DocLink = Session["VideoF
26 2024-04-26
编程技术问答社区
ADFS的新鲜度和会话滑动
I have implemented session sliding using in my customehttphandler module. 我试图在共享同一ADFS服务器的多个网站上进行验证,并在多个网站上进行身份验证. public void SessionAuthenticationModuleSessionSecurityTokenReceived(object sender, SessionSecurityTokenReceivedEventArgs e) { SessionSecurityToken token = e.SessionToken; DateTime nowUtc = DateTime.UtcNow; DateTime validFrom = token.ValidFrom; DateTime validTo = token.Vali
24 2024-04-25
编程技术问答社区
我正在从javascript中调用一个ASMX网络服务,它正在防止我的会话超时。
编辑2: 我有一个基于时间表或最终用户的请求在服务器端运行的背景过程,我需要向所有用户显示图像,以使他通知他此过程正在运行,或者在该过程完成. 编辑2完成 我正在调用位于JavaScript的IIS托管的网站中的ASMX Web服务,它使我的会话无法按时进行. 为什么从客户到Web服务的电话会阻止我的网站上的会话超时? 有没有办法防止它? 请告诉我,您是否需要更清楚我的问题或更多详细信息. 编辑1: 基于信息和链接 @rene147在下面的答案中提供了 @rene147以及一些谷歌搜索,我在WebService的侧面尝试了以下内容: [WebMethod(EnableSession=false)] public string GetSummary() { HttpContext.Current.Response.Cookies.Remove(System.Web.Security.FormsAuthent
12 2024-04-25
编程技术问答社区
ASP.NET 2.0会话意外终止
我们有一个ASP.NET 20 Web应用程序,突然间,我们开始体验一个奇怪的会话超时,该会话超时正在从系统中启动用户. 该系统还调用使用会员身份验证的WCF,以及其他所有调用我们都会遇到此错误: 无法处理该消息.这很可能是因为动作' http://tempuri.org/mywcfservice 无效或过期的安全上下文令牌令牌或绑定之间存在不匹配.如果由于不活动而导致该服务中止该渠道,则安全上下文令牌将无效.为了防止服务中止闲置会议过早增加服务端点的接收超时. 在应用程序上没有执行代码更改,我毫无疑问是原因或如何追踪此问题的任何帮助对这些问题的任何帮助将很大. 解决方案 您正在使用哪种会话状态?如果是INPROC,那么IIS应用程序池也许正在回收,这将清除会议,可能是您问题的潜在原因. 您还应该检查session_start或session_end事件中是否有任何可能引起任何问题的内容,如果是这样,请考虑在此处添加错误处理和/或登录. 其他解决方案 尝
20 2024-04-25
编程技术问答社区
有没有一种方法可以从静态上下文中获得Session对象?
我在C#/ASP.NET项目中.我希望能够从静态上下文中获取会话对象(HttpsessionState)的处理.有什么方法可以做吗? 解决方案 尝试以下方法: private static new HttpSessionState Session { get { return HttpContext.Current.Session; } } 然后,从另一个静态函数中,您可以将其称为 var myObj = Session[myKey]; 就像您从常规的非静态代码中一样. 其他解决方案 听起来您正在寻找: - var sess = HttpContext.Current.Session; 其他解决方案 是的,HttpContext上的Current属性是静态的,因此: System.Web.HttpContext.Current.Session 将从静态上下文中返回当前会话(但是您必须必须在H
10 2024-04-25
编程技术问答社区
在使用OWIN cookie认证时,无需数据库即可存储/检索用户数据
使用Owin Cookie身份验证时,如何正确存储和检索属于用户的数据?没有数据库可用.只要cookie保持有效,应最好使用数据.如果是不可能的,那么如果用户需要重新提供数据,则可以接受.当前登录仅使用类似的内容: // Check credentials here var claims = new List { new Claim(ClaimTypes.Name, name) }; var id = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie); HttpContext.GetOwinContext().Authentication.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity); 解决方案 cookie中间件要保存您的索赔认可中的任何东西,因
20 2024-04-25
编程技术问答社区