2015-04-08 4 views
1

Я хочу сохранить информацию о пользователе в локальное хранилище, когда я нажимаю кнопку «Вход». Теперь проблема в том, что я получаю информацию о пользователе, когда я нажал кнопку входа. И я определяю локальный код хранения, используя javascript в файле .ascx. В моем файле кода содержатся значения информации о пользователе, и я хочу использовать эти значения для хранения в локальном хранилище.Как получить код C# из 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)” 
    } 
}); 

Я хочу получать имя пользователя, адрес электронной почты, ПгвЬЫат, LastName из C# код, используя DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo()

Как я могу добиться этого? Пожалуйста, помогите мне. Спасибо.

+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 для создания действия и назвать его от ajax. Оба являются похожими и зависят от вас, который вы предпочитаете.

+0

Спасибо за ответ. Не могли бы вы рассказать мне, как я могу использовать следующий код в этом: var _currentUser = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo(); var userId = _currentUser.UserID; var fname = _currentUser.FirstName; – Developer

+0

С WebAPI или HttpHandler? – Peyman

Смежные вопросы