当前位置: 代码迷 >> C# >> FORM认证登录后,用户常用的基本资料信息怎么全站调用
  详细解决方案

FORM认证登录后,用户常用的基本资料信息怎么全站调用

热度:46   发布时间:2016-05-05 04:35:17.0
FORM认证登录后,用户常用的基本资料信息如何全站调用?
使用FORM认证登录后,调用会员的常用基本信息,我现在是这样做的,不知道会不会引起串号,行不行的通,如果不行,大家都是用的什么方式?
分不多,新手请大家指点,谢谢!

public class MyUser
{
//先获取登陆用户名
    private static string userid()
    {
        string userid;
        IPrincipal p = HttpContext.Current.User;
        userid = p.Identity.Name.ToString();
        return userid;
    }
 
//获取登陆用户对应的会员名称
    private static string username()
    {
        string Name;
        if (HttpContext.Current.Session["Name"] != null)
            Name = HttpContext.Current.Session["Name"].ToString();
        else
        {
            string id = userid();
            SqlServerDataBase db = new SqlServerDataBase();
            Name = Convert.ToString(db.GetTier("select Users_Qtname from Fs_Users where Users_id='" + id + "'", null));//获取会员名称
            HttpContext.Current.Session["Name"] = Name;//储存到Session中
        }
        return Name;
    }
 
//声明一个属性,全部调用
    /// <summary>
    /// 会员名
    /// </summary>
    public static string UserName
    {
        get
        {
            return username();
        }
    }
}
//全站调用
MyUser.UserName

------解决思路----------------------
不是可以放到Session里么
------解决思路----------------------
如果你担心什么问题,就写出测试程序来反复运行几百遍(包括并发运行),然后用你自己的测试结果再来问问题。

不要写点代码就问别人“是不是这样写啊?”。
------解决思路----------------------
放到Session里之后,唯一的问题是Session可能会丢失(一般默认是20分钟),那么你需要判断Session为null的时候,重新从数据库里读取信息

因为你是Form验证,根本没有登陆窗体,也不需要登陆
如果是匿名验证,自己做登陆窗体,那么当Session丢失的时候,应该跳转回登陆窗体要求重新填写用户名密码
  相关解决方案