我目前正在更新一个旧的Web表单项目的过程中,我们有点卡住能够压缩代码。在母版页中使用User.Identity.Name
作为一个背景,我去年只学过C#,并且一直在MVC中开发,不过这个项目是用vb.net和WebForms编写的,它有一些非常愚蠢和过时的逻辑/方法。
无论如何,在旧版本有下面的代码片段在每一页上:
currentUser = Membership.GetUser(User.Identity.Name)
Dim myMasterPage As Main = CType(Page.Master, Main)
myMasterPage.SetCustomerGreeting("You are logged in as: " & currentUser.UserName)
的代码被重复多次,并有这似乎很不好我在多个地方为它而改变在整个网站上保持一致。这是目前用来输出:
You are logged in as: Jason
在我Main.Master.vb我现在已经添加以下代码:
currentUser = Membership.GetUser(HttpContext.Current.User.Identity.Name)
If (currentUser IsNot Nothing) Then
SetCustomerGreeting("You are logged in as: " & currentUser.UserName)
End If
,输出:
You are logged in as : [email protected]
我的问题是,我怎么才能让它输出实际的用户名(本例中是jason)而不是电子邮件地址,因为当我检索currentUser变量的数据时,它不会让我在我的主页面中使用User.Identity.Name。
任何帮助将不胜感激。
谢谢。这是我已经使用,虽然。你提到的CType的东西是我想要摆脱的旧代码,甚至没有被我编程。 – jezzipin 2015-03-19 11:07:25