2011-03-25 74 views
0

我有一個web應用程序,它在我的瀏覽器中沒有任何問題。但是,如果我安裝了瀏覽器外,當我試圖獲取用戶名,該userAccount不在詞典:silverlight應用程序中的Windows身份驗證(NTLM)「Out of browser」

private void Application_Startup(object sender, StartupEventArgs e) { 
    string userId = e.InitParams["UserAccount"];//--> KeyNotFoundException 
    //... 
} 

,因爲我給它通過在ASPX推出的Silverlight這是正常的網頁:

<param name="InitParams" value="UserAccount=<%=HttpContext.Current.User.Identity.Name%>" />. 

我需要它,因爲有時我的應用程序,我需要顯示當前登錄的用戶,並顯示它的用戶之前我保存它,這將做到這一點還是這個動作。

因此,有一個問題:

  • 如何管理,以確保用戶加載應用程序和檢索的用戶id的權利。

非常感謝!

J4N

回答

0

事實上,它似乎是不可能的,我已經創建了一個WCF服務,它返回當前記錄的用戶。

0

你應該能夠將其客戶端片面這樣的:

e.InitParams["UserAccount"] = Environment.UserName; 

這雖然只得到了用戶名,但不完全一樣,你所顯示的另一個例子。

但是,根據客戶端提供的用戶名設置權限並不是一個好主意(這與您的示例一樣)。

+0

確定嗎?因爲我找不到任何「UserName」屬性在我的Environement var – J4N 2011-03-25 12:18:21

+0

@ J4N http://msdn.microsoft.com/en-us/library/system.environment.username.aspx – 2011-03-25 17:26:00

+0

我不確定這是silverlight可以兌換。對於你以前的擔憂:我沒有設置任何權限,它是負責這個的服務器,但有時我需要顯示當前用戶,或者只顯示與當前對象相關的對象,但它只是人體工程學擔心,從不安全。 – J4N 2011-03-27 06:21:27

相關問題