2013-04-05 22 views
0

我有以下幾點:WebApi - CurrentUserId直到註冊後纔可訪問?

public HttpResponseMessage Register(RegisterModel model) 
     { 
      if (ModelState.IsValid) 
      { 
        // Attempt to register the user 
        try 
        { 
         WebSecurity.CreateUserAndAccount(model.UserName, model.Password); 
         WebSecurity.Login(model.UserName, model.Password); 
         InitiateDatabaseForNewUser(model.UserName); 

         FormsAuthentication.SetAuthCookie(model.UserName, createPersistentCookie: false); 

         return Request.CreateResponse(HttpStatusCode.Created, WebSecurity.CurrentUserId); 

在這段代碼,CurrentUserId(在最後)始終解析爲-1,因爲WebSecurity沒有看到新用戶,直到方法關閉後。我想從Register()方法返回一個配置文件或至少是新註冊用戶的id--這怎麼實現?

+0

你見過這個SO張貼關於中的CreateUserWizard設置LoginCreatedUser和DisableCreatedUser? :http://stackoverflow.com/questions/7134638/what-does-formsauthentication-setauthcookie-do – AardVark71 2013-04-05 07:05:13

+0

謝謝AardVark-我沒有在我的代碼中指定LoginCreatedUser =「false」或DisableCreatedUser =「true」。 – SB2055 2013-04-05 13:51:09

回答

0

你應該能夠得到這樣的用戶的ID:

WebSecurity.GetUserId(model.UserName)