2011-10-20 63 views
0

我有一個onclick,它不應該提供給匿名用戶。從JavaScript中查看數據訪問授權標誌(ASP.NET MVC)

我目前砍死一起使用標誌元素:

@if (ViewBag.User != null) 
{ 
    <div id="userAuthenticated"></div>       
} 

和jQuery中:

$('.whatever').click(function() { 
    if ($('#userAuthenticated').length) { 
     // ... do something 
    } 
}); 

這只是感覺有點討厭,但我不知道什麼更好的辦法正在做。處理這種情況的最佳做法是什麼?是否有一些我不知道的巧妙技巧?

回答

1

相反,我會建議擁有兩個單獨的javascript文件,mysite-authorized.jsmysite-anon.js,並且僅爲授權用戶從anon文件中排除任何功能。然後,在您的佈局文件中,根據授權級別設置要提供的js文件。

這樣可以避免任何授權標誌,這可以被精明的用戶避免。

P.S.

在你看來,你已經檢查授權的手段:

if (this.ViewContext.HttpContext.User.Identity.IsAuthenticated) 
{ 
    // authenticated user js file here 
} 
else 
{ 
    // anon user js file here 
} 
+0

我認爲這是在第一次讀一個壞主意,但已經想過這個問題我大概可以工作是這樣的,而不會引入任何代碼複製。感謝您的建議。 – fearofawhackplanet

+0

我的許多想法起初看起來很糟糕(有些仍然是第二,第三,......)。在這裏,您可以使用這個機會將您的JavaScript代碼放入兩個或三個獨立的js文件,一個具有所有用戶所需功能的基本文件,一個授權文件,其中包含特定於授權用戶的功能,以及是否有任何功能匿名用戶是唯一的,也是一個文件。如果這有幫助,請標記爲已回答。 – counsellorben

+0

嗯,我寧願不必爲多個文件提供服務,但現在我已經走過了這條路線,它的工作原理非常好。謝謝。 – fearofawhackplanet