2013-03-16 48 views
0

我想找到一種方法來管理現有WebForms ASP.NET 4.0應用程序的角色。這不是MVC。我無法將現有項目更改爲MVC和.NET 4.5,因此請根據我的要求提供解決方案。SimpleMembership WebForms Asp.net 4.0角色

我一直在尋找SimpleMembership作爲管理角色的一種可能方式,而無需爲我不需要的表安裝整個成員資格(aspnet_regsql.exe)。

這是一個內部網站。用戶將通過他們的Windows身份認證,因此沒有登錄本身。大多數用戶不會在任何用戶數據庫中,我想要控制角色,以便如果他們沒有專門提供其他角色,他們仍然可以訪問(可能是公共角色或簡單的角色)。

對於將在數據庫中的用戶,我希望能夠分配角色(管理員,管理員等),以便他們能夠更好地訪問各種頁面和功能。用戶可能沒有角色(或上面提到的公共角色),或者具有單個角色或多個角色。

那麼,有可能嗎?我是否可以爲僅位於表格中的用戶設置基於角色的系統,並讓其他人無需登錄即可訪問站點的某些部分?

SQL Server中有一個現有的用戶表。我應該可以使用這個,而不是一個文本文件/ XML /手動方法。將創建一個管理頁面,爲用戶分配角色並添加用戶。

看來,我應該能夠根據本使用SimpleMembership:http://blog.osbornm.com/2010/07/21/using-simplemembership-with-asp-net-webpages/

雖然它說,我需要添加_start.cshtml一些MVC代碼,這將是罰款,只要我不需要將整個網站轉換爲MVC。

目前,我得到一個錯誤與此:

The type 'WebMatrix.WebData.WebSecurity' exists in both 'c:\Windows\Microsoft.NET\assembly\GAC_MSIL\WebMatrix.WebData\v4.0_1.0.0.0__31bf3856ad364e35\WebMatrix.WebData.dll' and 'c:\Windows\Microsoft.NET\assembly\GAC_MSIL\WebMatrix.WebData\v4.0_2.0.0.0__31bf3856ad364e35\WebMatrix.WebData.dll' 

我想,一旦我解決這個問題,最有可能是web.config的設置,我應該罰款。

回答

0

事實證明,我必須做的就是它的工作是在web.config

<add key="webPages:Version" value="2.0" /> 
<add key="enableSimpleMembership" value="false" /> 
<add key="autoFormsAuthentication" value="false" /> 

得到適當的設置,並在_start.cshtml文件中添加代碼

@{ 
    WebSecurity.InitializeDatabaseConnection("ConnectionStringNameHere", "Users", "ID", "LanID", false); 
}