首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

怎么获取WEB访问者的登录信息

2012-10-17 
如何获取WEB访问者的登录信息?我使用 HttpContext.Current.User.Identity.Name,在VS里调试是没问题,但是在

如何获取WEB访问者的登录信息?
我使用 HttpContext.Current.User.Identity.Name,在VS里调试是没问题,但是在IIS里调试就显示为空(此时我使用的是匿名的验证方式),但是用集成验证时,会弹出一个登录框。

[解决办法]
if(HttpContext.Current.User!=null)//如果当前的http信息中存在用户信息
{
if(HttpContext.Current.User.Identity.IsAuthenticated)//如果当前用户的身份已经通过了验证
{
if(HttpContext.Current.User.Identity is FormsIdentity)
{
//如果当前用户身份是FormsIdentity类即窗体验证类,此类有个属性能够访问当前用户的验证票
FormsIdentity fi = (FormsIdentity)HttpContext.Current.User.Identity;//创建个FormsIdentity类,用他来访问当前用户的验证票
//获得用户的验证票
FormsAuthenticationTicket ticket = fi.Ticket;
//从验证票中获得用户数据也就是角色数据
string userData = ticket.UserData;
//把用户数据用,分解成角色数组
string[] roles = userData.Split(',');
//重写当前用户信息,就是把角色信息也加入到用户信息中
HttpContext.Current.User = new GenericPrincipal(fi,roles);
}
}
}

[解决办法]
通过session 保存用户信息
FormsAuthentication.SetAuthCookie(loginName, false);

string Name = HttpContext.Current.User.Identity.Name;

热点排行