我目前正在更新一箇舊的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