我在protected void Page_Load中可以取得用户ID,protected void Page_Load(object sender, EventArgs e)
    {        // 在此处放置用户代码以初始化页面
                if (Page.IsPostBack == false)
        {
            //Panel1.Visible = false;
            
            //首先取得用户ID
            string UserName = Profile.UserName;
            MembershipUser mu = Membership.GetUser(UserName);
            if (mu == null)
            {
                Response.Redirect("~/Message.aspx?msn=您不能修改别人的广告");            }
            else
            {
                Guid UserId = (Guid)mu.ProviderUserKey;                string stUserId=UserId.ToString();
       }
但在public static string中写以下代码就出错,   public static string GetUserId
   {
   get
   {
        //首先取得用户ID
            string UserName = Profile.UserName;
            MembershipUser mu = Membership.GetUser(UserName);
            if (mu == null)
            {
                Response.Redirect("~/Message.aspx?msn=您不能修改别人的广告");            }
            else
            {
                Guid UserId = (Guid)mu.ProviderUserKey;                string stUserId=UserId.ToString();
                
            }
     }
   }取不了用户ID,请问我应怎么写?我需要将用户ID设为本页全局变量,在本页任何地方调用。急急急。

解决方案 »

  1.   

    page_load上面加入本面的全局变量就可以了。
    protected void int userid;
    再引用;
      

  2.   

    那就将它保存在ViewState中了。
    ViewState[“ID”]=赋值;
    用的时候:
    ...=ViewState["ID"].ToString();
      

  3.   

    我需要将用户ID设为本页全局变量,在本页任何地方调用。急急急。
    ======================不应该设计成Static的类成员,直接用简单的类成员就好了。private string _userID;protected   void   Page_Load(object   sender,   EventArgs   e) 

       //   在此处放置用户代码以初始化页面      
       if (!Page.IsPostBack) 
       { 
          //首先取得用户ID 
          string UserName = Profile.UserName; 
          MembershipUser mu = Membership.GetUser(UserName); 
          if (mu == null) 
          { 
             Response.Redirect("~/Message.aspx?msn=您不能修改别人的广告"); 
          }
          else 
          { 
             Guid UserId = (Guid)mu.ProviderUserKey; 
             _userID= UserId.ToString(); 
       } 
    }在你Page_Load的时候初始化_userID就可以了,页面中其他方法里就可以直接用到_userID了。
    Page_Load是页面每次被访问最先走到的方法。
      

  4.   

    我还有另外一个类,同在本页: public static string CurrentPath = @"X:\XX";需要加上stUserId即
       public static string CurrentPath = @"X:\XX"+@"\"+stUserId;//这样不行
       private string stUserId;//
    在其它方法里使用CurrentPath时,都没有把srUserId加上,而仅仅得出X:\XX\
    在线等。
      

  5.   

    简单点说就是:
    先取得用户ID,
    private   string   stUserId;// 
    //然后再设置路径,即固定目录+用户ID生成的路径public   static   string   CurrentPath   =   @"X:\XX"+@"\"+stUserId;//可CurrentPath并没有得到srUserId的值,问题出在这protected       void       Page_Load(object       sender,       EventArgs       e)   
    {   
          //       在此处放置用户代码以初始化页面             
          if   (!Page.IsPostBack)   
          {   
                //首先取得用户ID   
                string   UserName   =   Profile.UserName;   
                MembershipUser   mu   =   Membership.GetUser(UserName);   
                if   (mu   ==   null)   
                {   
                      Response.Redirect("~/Message.aspx?msn=您不能修改别人的广告");   
                } 
                else   
                {   
                      Guid   UserId   =   (Guid)mu.ProviderUserKey;   
                      _userID=   UserId.ToString();   
       }   
      

  6.   

    public   static   string   GetUserId 
          { 
          get 
          { 
                    //首先取得用户ID 
                            string   UserName   =   Profile.UserName; 
                            MembershipUser   mu   =   Membership.GetUser(UserName); 
                            if   (mu   ==   null) 
                            { 
                                    Response.Redirect("~/Message.aspx?msn=您不能修改别人的广告");                         } 
                            else 
                            { 
                                    Guid   UserId   =   (Guid)mu.ProviderUserKey;                                 string   stUserId=UserId.ToString(); 
                                    
                            }                //这里加一句...                return stUserId;
              } 
          } 
      

  7.   

    get就是需要反回...
    同时,你用public的string的时候应该有Set吧.不然,这个public 应该放在,public class 类名,,中...你申明的是一个静态的string 也应该反回一个string类型.
      

  8.   

    ykisely 的方法不对,在public       static       string       GetUserId   中根本用不了Profile.UserName;