我有一个使用自定义身份验证的登录控件的.aspx页面。我想知道是否可以使用LoginName控件而不是默认访问的[UserName]来获取“Welcome [FirstName] [LastName]”消息。
我正在考虑将这些信息存储在Session对象中,如果不可能的话。
谢谢!
答案 0 :(得分:2)
您需要覆盖RenderContents
方法或创建自己的LoginName控件。这样的事情可以解决问题:
protected override void RenderContents(HtmlTextWriter writer)
{
if (string.IsNullOrEmpty(Profile.FullName))
return;
nameToDisplay = HttpUtility.HtmlEncode(Profile.FullName);
string formatExpression = this.FormatString;
if (formatExpression .Length == 0)
{
writer.Write(nameToDisplay);
}
else
{
try
{
writer.Write(string.Format(CultureInfo.CurrentCulture, formatExpression, new object[1] { nameToDisplay });
}
catch (FormatException exception)
{
throw new FormatException("Invalid FormatString", exception1);
}
}
}
此外,请参阅此处以获取有关working with LoginName的简短文章。
答案 1 :(得分:2)
在重定向页面中创建一个LoginName控件,它可能是Masterpage.aspx或任何其他页面。
<asp:LoginName ID="LoginName1" runat="server" />
然后在.cs文件中的page_load中插入这些代码行
protected void Page_Load(object sender, EventArgs e)
{
//this can come from anywhere like session, database
string fullName = "ABC XYZ";
LoginName1.FormatString = "welcome" + " - " + fullName ; //output: welcome - ABC XYZ
or
LoginName1.FormatString = fullName; // output: ABC XYZ
}
这对你有帮助???
答案 2 :(得分:0)
首先,请参阅Personal names in a global application: What to store。即使你的网站仅限于美国,我也很确定我在这里见过一些外国人。
答案 3 :(得分:0)
您可以使用FormatString属性将欢迎消息设置为您想要的任何字符串。当与表达式构建器(例如<%$ expressionPrefix: expressionValue %>)结合使用时,您可以灵活地定义输出。