0

我正在尝试找到一种方法来管理现有 WebForms ASP.NET 4.0) 应用程序的角色。这不是 MVC。我无法将现有项目更改为 MVC 或 .NET 4.5,因此请根据我的要求提供解决方案。

我将 SimpleMembership 视为管理角色的一种可能方式,而无需使用我不需要的表安装整个成员资格 (aspnet_regsql.exe)。

这是一个内部网站。用户将通过他们的 Windows 身份进行身份验证,因此本身没有登录。大多数用户不会在任何用户数据库中,我想控制角色,以便如果没有专门为他们提供额外的角色,他们仍然可以访问(可能是公共角色,或者简单的无角色)。

对于将在数据库中的用户,我希望能够分配角色(管理员、经理等),以便他们能够更好地访问各种页面和功能。用户可以没有角色(或公共的,如上所述),也可以有一个或多个角色。

那么,有可能吗?我可以为表中的那些用户创建一个基于角色的系统,并让其他人无需登录即可访问网站的某些部分吗?

SQL Server 中有一个现有的用户表。我应该可以使用这个,而不是文本文件/xml/手动的方法。将创建一个管理页面来为用户分配角色并添加用户。

看来我应该可以根据这个使用 SimpleMembership:http: //blog.osbornm.com/2010/07/21/using-simplemembership-with-asp-net-webpages/

虽然它说我需要用一些 MVC 代码添加 _start.cshtml,但只要我不需要将整个站点转换为 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 设置,我应该没问题。

4

1 回答 1

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);
}
于 2013-03-17T02:43:23.430 回答