每次在ASP.NET中登录时,我都会将用户用户名放在会话中,如下所示
//.....
if (PasswordHash.PasswordHash.ValidatePassword(LoginForm.Password, password))
{
e.Authenticated = true;
Session["Username"] = LoginForm.UserName;
}
//.....
现在我需要通过JS访问它,我想我可以这样做:
if (won) {
var username = '<%= Session["Username"] %>'
alert("Congrats " + username + ", you won!");
}
但我得到的是Congrats <%= Session["Username"] %>, you won!
。这是为什么?根据{{3}}和this问题中的答案判断,我应该可以像这样访问它。
答案 0 :(得分:2)
您可以将用户名编码为div或javascript变量。
将此添加到您从
调用javascript的页面<div id="userinfo" data-user-name="<%= Session["Username"] %>">
然后使用jquery
读取数据$('#userinfo').data('user-name')
对于javascript,将以下内容添加到您的页面
<script>
var username = "<%= Session["Username"] %>";
</script>
然后你可以在代码的其他部分使用你的变量。
答案 1 :(得分:1)
我可以建议使用这样的东西:
if (won) {
$.ajax({
type: "POST",
url: "SomePage.aspx/GetUserName",
contentType: "application/json; charset=utf-8",
dataType: "text",
success: function (name) {
alert("Congrats " + name+ ", you won!");
}
});
}
[System.Web.Services.WebMethod]
public static string GetUserName()
{
...
if (PasswordHash.PasswordHash.ValidatePassword(LoginForm.Password, password))
{
return LoginForm.UserName;
}
...
}