MVC中授权时如何防止“将请求发送到服务器时发生传输级错误”错误

时间:2021-03-09 17:38:56

标签: c# sql-server asp.net-mvc entity-framework

我正在尝试通过多个角色授权每个控制器类,以下是步骤

1.

<system.web>
    <compilation debug="true" targetFramework="4.5.2" />
    <httpRuntime enableVersionHeader="false" />
     <customErrors mode="Off"/>
   <sessionState cookieless="false" timeout="120"/>
    <authentication mode="Forms">
      <forms loginUrl="/Home/Index">
      </forms>
    </authentication>
    <membership defaultProvider="MyMembership">
      <providers>
        <clear />
        <add name="MyMembership" type="BLL.MyMembership" />
      </providers>
    </membership>
    <roleManager enabled="true" defaultProvider="MyRoleProvider">
      <providers>
        <clear />
        <add name="MyRoleProvider" type="BLL.MyRoleProvider" />
      </providers>
    </roleManager>
  </system.web>
namespace BLL
{
public class MyRoleProvider: RoleProvider
    {
        myDbEntities AppDB;
        public MyRoleProvider()
        {
            AppDB = new myDbEntities();
        }
        public override string[] GetRolesForUser(string username)
        {
            string[] roleID = { AppDB.Logins.Where(x => x.Username == Username).FirstOrDefault().rID.ToString()};
            return roleID;
        }
}
using System.Web.Mvc;
namespace BLL
{
    [Authorize(Roles = "1,2")]
    public class DashboardController : Controller
    {
    }
}

我无法理解我错在哪里,主要是获得成功,很少遇到问题: "

<块引用>

InnerException {连接没有关闭。连接的 当前状态正在连接。"} System.Exception {System.InvalidOperationException} 传输级错误有 向服务器发送请求时发生。 (提供者:会话 提供程序,错误:19 - 物理连接不可用)

在获得 RoleIds 查询后,我尝试使用以下代码。

using System.Data.SqlClient;

SqlConnection.ClearAllPools();

0 个答案:

没有答案
相关问题