我想获取当前登录的用户名并将其显示为我的前端。 目前我有一个名为GetCurrentUser()的函数,当单击一个按钮时会调用它。
<button type="submit" onclick="GetCurrentUser()" style="margin-left: 15px;margin-top:10px; margin-bottom: 5px;background-color: black; "value="Submit">Save Selections</button><br>
function GetCurrentUser() {
var usrName ="@HttpContext.Current.User.Identity.Name.ToString()";
//var usrName = '<%HttpContext.Current.User.Identity.Name %>';
//document.getElementById("UserName").innerHTML = usrName;
console.log(usrName);}
我在控制台日志中获得了follwoingoutput - &gt; @ HttpContext.Current.User.Identity.Name
答案 0 :(得分:2)
如果您看到“HttpContext.Current.User.Identity.Name”的文字输出,则在丢失服务器上下文后,您的JS函数将在客户端生成。
为您选择情侣:
通过ajax回拨给您的控制器以获取用户名
在页面加载时将用户名存储在只读字段中(有点像设置表单值)并在函数调用时通过jquery或js检索值
将页面加载时的用户名分配给全局js元素,并在函数中使用该元素。
以下是2和3的示例。在您完全理解为什么问题发生在第一位之前,我认为您不应该担心#1:
<div class="btn btn-info" onclick="GetCurrentUser()" style="margin-left: 15px;margin-top:10px; margin-bottom: 5px;background-color: black; " value="Submit">Save Selections</div><br>
<input type="hidden" name="method2" id="method2" value="@System.Security.Principal.WindowsIdentity.GetCurrent().Name">
@section scripts {
<script>
var globalSettingMethod = '@System.Security.Principal.WindowsIdentity.GetCurrent().Name';
function GetCurrentUser() {
alert(globalSettingMethod);
alert($('#method2').val());
}
</script>
}
答案 1 :(得分:0)
我可以通过在文档末尾传递脚本来使用户登录。
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="Example.SiteMaster" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
</head>
<body>
<form runat="server">
</form>
<script>
var loggedUser = "<%: HttpContext.Current.User.Identity.Name %>";
</script>
</body>
</html>
我希望您觉得它有用。