0

我正在使用ASP.NET/C#.

我目前正在通过使用显示登录用户的名字和中间名Session

这是代码

HTML:

<li><a href="#"><%=Session["UserFName"]%>&nbsp;<%=Session["UserMName"]%>&#9660;</a>

代码背后:

//Call the function which returns User's Name
var userName = userBLL.GetUserName(HttpContext.Current.User.Identity.Name);
if (userName != null)
{
Session["UserFName"] = userName.FirstName;
Session["UserMName"] = userName.MiddleName; 
}

这是 GetUserName 函数

public Users_AdditionalInfo GetUserName(string userCode)
{
using (var db = new DataClasses1DataContext())
{
var userName = db.Users_AdditionalInfos.Where(user => user.UserCode.Equals(userCode)).SingleOrDefault();
return userName; 
}

}

用来Session variables做我想做的事可以吗?

你们中的许多人还有哪些其他方法可以实现这一目标?

欢迎任何建议。

4

4 回答 4

1

您可以尝试使用 ViewState,因为您只需要在带有菜单的页面上显示值(您不需要在另一个页面中)

ViewState["UserFName"] = userName.FirstName;
ViewState["UserMName"] = userName.MiddleName; 

Or with InputHidden
于 2012-07-27T08:01:59.060 回答
1

您只提到了 ASP.NET,而不是 MVC。您是否使用MVC?

如果没有,你为什么不在Literal里面放一个控件<li>并在页面加载时填充它

在你的 aspx 中是这样的:

<li><a href ="#"><asp:Literal ID="lt_name" EnableViewState="false" 
 runat="server" Text=""></asp:Literal></a> 

在页面加载中,您执行以下操作:

var userName = userBLL.GetUserName(HttpContext.Current.User.Identity.Name);  

lt_name.text = userName.Firstname + " " + username.Lastname;
于 2012-07-27T08:06:59.550 回答
1

在你的代码隐藏类中

public string UserFName = "";
public string UserMName = "";

您分配的代码后面的代码:

//Call the function which returns User's Name
var userName = userBLL.GetUserName(HttpContext.Current.User.Identity.Name);
if (userName != null)
{
this.UserFName = userName.FirstName;
this.UserMName = userName.MiddleName; 
}

最后在 aspx 代码中:

<li><a href="#"><%=UserFName%>&nbsp;<%=UserMName%>&#9660;</a>

请记住,如果用户名中允许使用特殊的 html 字符 - 您需要先转义这些字符,然后再将它们打印出来。

于 2012-07-27T08:07:25.467 回答
0

在您的 aspx 页面或网站母版页中,只需放置一个标签,例如..

    <asp:Label ID="lblLoggedUser" runat="server" Font-Names="Verdana" Enabled="false"
                        ForeColor="Blue" Font-Size="13px"></asp:Label>

像这样从登录页面获取登录用户值会话。

Session["USER"] =txtusername.text;

以及您的 sitemaster.cs 页面的 page_load

 lblLoggedUser.text= Session["USER"].tostring(); 
于 2012-07-27T08:32:04.807 回答