我想在单击“登录”按钮时将用户信息存储到本地存储中。现在的问题是,当我点击登录按钮时,我正在获取用户信息。我在 .ascx 文件中使用 javascript 定义了本地存储代码。我的代码隐藏文件包含用户信息的值,我想使用该值存储到本地存储中。
这是我的 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()
我怎样才能做到这一点?请指导我。谢谢。
请您参考如下方法:
您可以创建 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 创建操作并从 ajax 调用它。两者相似,取决于您更喜欢哪一个
