1、获取当前登录用户ID
Membership.GetUser().ProviderUserKey;
例子:
using System.Web.Security;
protected void dvNewPost_ItemInserting(object sender, DetailsViewInsertEventArgs e)
{
e.Values["UserId"] = Membership.GetUser().ProviderUserKey;
}
上例的意思是将当前登录用户的ID插入到最新的记录中。
2、判断用户是否登录
使用User.Identity.IsAuthenticated,该值是一个布尔值,如果用户已经登录(即通过身份验证),该值为true,否则为false。如:
protected void Page_Load(object sender, EventArgs e)
{
if (!User.Identity.IsAuthenticated)
Response.Redirect("Index.aspx");
}
上例的意思是如果用户没有登录(!User.Identity.IsAuthenticated = true, 注意前边有Not运算符!),则重定向到主页Index.aspx,即用户无法进入本页面。如果用户为登录用户,则本代码不执行,进入本页面。
3、判断用户是否为某角色
使用User.IsInRole(“Admin”)。User.IsInRole(“Admin”)是一个布尔值,如果用户是Admin角色,则返回true,否则返回false。如:
protected void Page_Load(object sender, EventArgs e)
{
if (!User.IsInRole("Admin"))
Response.Redirect("Index.aspx");
}
上例是一个网站管理员(Admin角色)专用页面的page_load事件。如果用户是网站管理员,则不执行代码,直接进入本网站管理员专用页面。如果用户不是网站管理员,则重定向到主页Index.aspx,无法进入本网站管理员专用页面。
4、获取当前登录用户的用户名
使用HttpContext.Current.User.Identity.Name获取
比如设置一个属性,获取当前用户名
public string CurrentUserName
{
get
{
string userName = "";
if (HttpContext.Current.User.Identity.IsAuthenticated)
userName = HttpContext.Current.User.Identity.Name;
return userName;
}
}
5、获取当前登录用户的IP地址
使用`HttpContext.Request.UserHostAddress`获取