Visual Studio 2013和ASP.NET Web配置工具 - 启用roleManager

时间:2014-01-04 17:55:17

标签: c# asp.net asp.net-mvc visual-studio visual-studio-2012

发布的here解决方案是为了让配置管理器启动......但是......

  

您选择的数据存储存在问题。这可能是造成的   由无效的服务器名称或凭据,或由不足   允许。它也可能是由角色管理器功能引起的   被启用。单击下面的按钮可重定向到其中的页面   您可以选择新的数据存储。

从以前的版本开始,角色管理器将是第一个在“安全”选项卡上访问的东西 - 设置角色。但是“安全”选项卡是出现此错误的位置。

我已选择并成功测试了数据提供商。

  

提供商管理已成功建立与该连接的连接   数据库中。

可以肯定的是,WebConfig文件中没有roleManager部分。

现在怎样?似乎是MS就该主题进行了不少冗长的讨论,但没有有用的解决方案。我尝试在我的WebConfig文件中添加部分,但是当我尝试从项目中运行任何文件时,我得到的都是“缺少部分”错误。所以我把它们拿出来了(项目运行了。

那么如何为项目启用登录(VS 2013 Web Internet MVC?)

(非常感谢MS从VS 2013 Web中的工具栏中删除了非常有用的Web配置工具....显然没有人创建Web应用程序需要Web配置工具......)


使用VS 2010 Web上的先前项目找到临时解决方案。我的演示所需要的是创建帐户的能力。该项目的设立允许创建帐户。

  <system.web>
<!-- add role manager -->
  <roleManager enabled="true"/>
<!--<authentication mode="None" />-->
  <authentication mode="Forms">
     <forms loginUrl="~/Account/LogOn" timeout="2880"></forms>
  </authentication>
  <compilation debug="true" targetFramework="4.5" />
  <httpRuntime targetFramework="4.5" />
</system.web>   

所以,现在,我可以创建一个用户。 如果MS只是将“按钮”放回去,那就太好了。


配置文件更清晰......

将角色放入我的SQL数据库仍然遇到问题。但不知何故,必要的“默认连接”出现在必要的表格中。不太确定发生了什么。需要永久解决方案。

正在运行的Web.config文件需要两个定义: 1. connectionString 2. roleManager

我的SQL DB的连接字符串允许我输入和更新应用程序数据(但不是用户角色或ID)

  <add name="**MyData**" 
    connectionString="Data Source=localhost\MyDB;Initial Catalog=MyData;Integrated Security=True;"
    providerName="System.Data.SqlClient" />

其中MyDB是实例的名称,MyData是数据库的名称

roleManager使用连接字符串的名称(MyData) (如上所述,这不完全正常。用户的登录数据仍然存储在默认连接中....即使我将其从web.Config文件中删除并将其从项目。)

  <system.web>
    <!-- add role manager 
    <roleManager defaultProvider="SqlProvider"
      enabled="true"
          cacheRolesInCookie="true"
          cookieName=".ASPROLES"
          cookieTimeout="30"
          cookiePath="/"
          cookieRequireSSL="false"
          cookieSlidingExpiration="true"
          cookieProtection="All">
      <providers>
          <add name="SqlProvider"
             type="System.Web.Security.SqlRoleProvider"        
             connectionStringName="**MyData**"
             applicationName="/"/>
      </providers>
    </roleManager>

随后...... 身份验证模式的这些设置正确返回我已设置为要求身份验证的页面/部分的“登录”页面。我对不同的页面/部分有不同的要求。

    <authentication mode="Forms">
      <!-- sets page to Account/Login for access to restricted pages-->
      <forms loginUrl="~/Account/Login" timeout="2880"></forms>
    </authentication>
     <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
  </system.web>

我的一个控制器的一个例子......

    namespace MyProject.Controllers
        {
            [Authorize(Roles = "Manager, Administrator")]
            public class ResidentController : Controller
            {
    // remainder of controller file
            }
        }

0 个答案:

没有答案