“如何获取 login 控件登陆后的用户名”之解决
方法有二:
一、在 aspx 页面中添加一个 LoginName 控件就可以获得用户名;
二、如果 LoginName 控件是放在 master 模版中的,内容页该如何获取呢?
1)在内容页 aspx.cx 中添加命名空间:
using System.Web;
2)在 Page_LoadComplete 中使用 HttpContext 方法
protected void Page_LoadComplete(object sender, EventArgs e)
{
message.Text = "用户名:" + HttpContext.Current.User.Identity.Name.ToString();
}
MSDN:HttpContext 类
封装有关个别 HTTP 请求的所有 HTTP 特定的信息。
命名空间:System.Web
程序集:System.Web(在 System.Web.dll 中)
HttpContext代表的是当前访问的上下文,你可以通过它获取当前会话的相关信息,它其实来自于一个委托的参数原形、该委托的声明如下。
public delegate string HttpResponseSubstitutionCallback(HttpContext context)
使用委托可以在运行时动态设定要调用的方法,比如一个事件它本身不能完成一定的功能,就可以通过委托其他方法来实现。调用委托时要注意,调用的方法必须与委托的方法有相同的方法签名。如Subsitution控件的MethodName调用的方法必须与HttpResponseSubstitutionCallback委托的签名相匹配,返回结果为string格式,参数为HttpContext类型。