2013-03-16 35 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); 
}