2015-04-08 60 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