Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关于会话变量的问题_C#_Asp.net_Session - Fatal编程技术网

C# 关于会话变量的问题

C# 关于会话变量的问题,c#,asp.net,session,C#,Asp.net,Session,我目前正试图允许用户在我用C#-ASP.net创建的网站上“个性化”他们的背景图像。我设想创建一个if语句,检查当前登录的用户是否与登录时创建的会话变量匹配,如果匹配,则允许他更改其背景图像。在我这样做之前,我还认为测试它是否能以这种方式工作的最好方法是尝试将会话变量的内容直接写到页面上。这就是问题所在。我得到的只是会话变量的“名称”,其他什么都没有。我怎样才能换这个? 下面的代码与我迄今为止使用会话变量所尝试的代码基本相同 <% // User with the name of "Bob


我目前正试图允许用户在我用C#-ASP.net创建的网站上“个性化”他们的背景图像。我设想创建一个if语句,检查当前登录的用户是否与登录时创建的会话变量匹配,如果匹配,则允许他更改其背景图像。在我这样做之前,我还认为测试它是否能以这种方式工作的最好方法是尝试将会话变量的内容直接写到页面上。这就是问题所在。我得到的只是会话变量的“名称”,其他什么都没有。我怎样才能换这个? 下面的代码与我迄今为止使用会话变量所尝试的代码基本相同

<%
// User with the name of "Bob" is logged in with code further up
var login_username = Request["login_username"];

Session["loggedIn"] = login_username;

Response.Write(Session["loggedIn"]);

// Results in it writing out "loggedIn".
// Expected "Bob".

%>


我要公平地说,我不知道这是否足以让任何人帮我一把,我是否走上了正确的道路,但仅此而已。如果有更好的方法,我会寻求建议。

登录时,将用户名存储到会话变量中, 例如:会话[“loggedIn”]=用户名 然后,使用将会话值读取到标签文本 Convert.ToString(会话[“loggedIn”]


或者,您可以写入响应。写入(会话[“loggedIn”]);以获取变量的字符串。

您确定
login\u用户名
不是“loggedIn”吗?你能在调试器中验证它吗?你是通过表单变量还是URL传递数据?@DStanley login_username是用户在登录字段中输入姓名时使用的表单字段,“loggedIn”只是我创建的会话变量的名称。你在调试器中验证了吗?没有办法
会话[“loggedIn”]
将输出
loggedIn
,除非这是存储在session变量中的内容。实际上我没有,但因为我现在知道我很愚蠢,所以我编写了session[“loggedIn”]=“loggedIn”,写loggedIn有意义吗?好的!我一有机会就检查一下!现在就把文件拿过来。我用Response.write(Session[“loggedIn”])修复了它;但是,由于第一部分有效,而且我相信你的方法也会有效,我会把它标记为答案!