我尝试将用户重定向到新页面,其中将在文本框中显示用户名。我使用ASP.NET登录名和按钮来执行此操作。我的问题是,我不是100%确定如何从LoginName获取值到需要它的javascript。我没有办法进入服务器代码所以这一切都必须由SharePoint设计师完成 我知道常见的方法是做这样的事情
window.location="http://mysite/default.aspx?u="+ LoginName1
但这似乎不想工作。有什么答案吗?
JavaScript代码
function Redirect()
{
window.location="http://mysite/default.aspx";
}
ASP.NET代码
<asp:Button runat="server" Text="To Sysomos" id="Button1" OnClientClick="if (!Redirect()) { return false;};"></asp:Button>
<asp:LoginName runat="server" id="LoginName1" ></asp:LoginName>
答案 0 :(得分:0)
尝试这样的事情
<script>
var usrName = "@HttpContext.Current.User.Identity.Name";
</script>
window.location =“http://mysite/default.aspx?u ='+ usrName +'”;
参考: How to get the current login user name in my Script file inside my asp.net mvc
答案 1 :(得分:0)
假设您使用的是SP2010,您可以使用Sharepoint的客户端对象模型来获取当前用户的详细信息。
<script type="text/javascript">
(function () {
var spUser;
// Ensure SP objects have been loaded before executing our code
ExecuteOrDelayUntilScriptLoaded(getSpUser,"sp.js");
function getSpUser() {
var clientContext = new SP.ClientContext.get_current();
var spWeb = clientContext.get_web();
spUser = spWeb.get_currentUser();
clientContext.load(spUser);
clientContext.executeQueryAsync(getSpUserSuccess, getSpUserException);
}
function getSpUserSuccess(sender, args) {
var curUserId = spUser.get_loginName();
// redirectToSomeAspxPage();
}
function getSpUserException(sender, args) {
// Do any necessary error handling.
}
})();
</script>
唯一的问题是,重定向的时间可能会稍微延长,因为代码需要等待sp.js加载才能获得当前用户的详细信息。或者,您可以在查询字符串上没有用户名的情况下重定向,只需使用上面的代码从ASPX页面中检索用户名。
答案 2 :(得分:0)
您可以找到当前用户的用户名和其他内容。要做到这一点,首先在.aspx页面的顶部添加此行:<%@ Register Tagprefix="SPSWC" Namespace="Microsoft.SharePoint.Portal.WebControls" Assembly="Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
(Sharepoint 2010为Version=14.0.0.0
,Sharepoint 2007为Version=12.0.0.0
)
现在,在<form>
标记之后添加以下行:
<form>
<SPSWC:ProfilePropertyLoader runat="server"/>
最后在</form>
标记之前添加以下块:
<div id="userDetails" style="display:none">
<asp:LoginName runat="server" id="userLogin">
<SPSWC:ProfilePropertyValue PropertyName="FirstName" ApplyFormatting="false" id="userFirstName" runat="server"/>
<SPSWC:ProfilePropertyValue PropertyName="LastName" ApplyFormatting="false" id="userLastName" runat="server"/>
<SPSWC:ProfilePropertyValue PropertyName="WorkEmail" ApplyFormatting="false" id="userWorkEmail" runat="server"/>
<SPSWC:ProfilePropertyValue PropertyName="PreferredName" ApplyFormatting="false" id="userPreferredName" runat="server"/>
</div>
因此,在您的页面中,您将看到一个“userDetails”块,其中包含当前用户登录名,名字,姓氏,工作电子邮件和首选名称。使用JavaScript,您可以获得用户名:
document.getElementById('ctl00_userLogin').innerHTML