2015-04-08 92 views
1

我想單擊登錄按鈕時將用戶信息存儲在本地存儲中。現在的問題是我點擊登錄按鈕時獲取用戶信息。我已經在.ascx文件中使用JavaScript定義了本地存儲代碼。我的代碼隱藏文件內容的用戶信息的值,我想使用該值存儲到本地存儲。如何從javascript獲取C#代碼

這裏是我的JavaScript本地存儲代碼:

LocalStorage.setItem("TestUser", JSON.stringify({ 
     "Usr_Username": 「The username(string)」, 
     "Usr_Email": 「Email(string)」, 
     "Usr_FirstName": 「First name(string)」, 
     "Usr_LastName": 「Last name(string)」, 
     "Usr_CompanyName": 「Company name(string)」, 
     "Usr_CountryCode": 「Country code(string)」, 
     "isAdmin": 「If the user has admin rights(boolean)」 
    } 
}); 

我想用DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo()

來獲取用戶名,電子郵件,名字,從C#代碼名字我怎樣才能做到這一點?請引導我這一點。謝謝。

+0

使用Ajax以JSON格式獲取用戶數據,然後解析響應。 –

回答

3

您可以創建HttpHanlder和jQuery的AJAX調用它:

$.ajax({ 
    url: "/User.ashx", 
    contentType: "text/plain",   
     contentType: "application/json; charset=utf-8", 
    success: function (data) { 
    LocalStorage.setItem("TestUser", data); 
    } 
}); 

和User.ashx應該是這個樣子:

public class User : IHttpHandler 
{ 
    public void ProcessRequest(HttpContext context) 
    { 
    JavaScriptSerializer serializer = new JavaScriptSerializer(); 
    context.Response.ContentType = "text/html"; 
    var currentUser = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo(); 

    var serUser = javaScriptSerializer.Serialize(currentUser); 
    context.Response.Write(serUser); 
    } 
    public bool IsReusable 
    { 
    get 
    { 
     return false; 
    } 
    } 
} 

或者你可以使用的WebAPI創建行動,並調用它來自阿賈克斯。兩者都是相似的,取決於你自己喜歡哪一種

+0

感謝您的回覆。你能告訴我如何使用下面的代碼:var _currentUser = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo(); var userId = _currentUser.UserID; var fname = _currentUser.FirstName; – Developer

+0

使用WebAPI或HttpHandler? – Peyman