标签: roleprovider

尚未启用角色管理器功能

得到以下ProviderException:

尚未启用角色管理器功能.

到现在为止还挺好.

是否有某个方法可以调用以检查角色管理器是否已启用?

c# asp.net roleprovider

190
推荐指数
5
解决办法
12万
查看次数

SQL网络接口,错误:26 - 找到指定的服务器/实例时出错

好吧,我有一个很大的问题,我正在努力解决,但我无法做到,所以我需要你的帮助.我在asp.net 4.0中有一个Web应用程序,我实现了自定义成员资格和角色提供程序.当我打开应用程序主页时,它连接到数据库并检索一些信息.还有一个登录表单,当我登录时,它通过数据库验证用户并将我重定向到保留页面,但出现此错误:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)

描述:

在执行当前Web请求期间发生了未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

例外细节:

System.Data.SqlClient.SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)

来源错误:

在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.

我尝试了很多东西,我在stackoverflow中找到了一些解决方案,但没有任何效果.这是我的连接线:

<connectionStrings>
  <clear/>
  <remove name="LocalSqlServer"/>
     <add name="LocalSqlServer" connectionString="Data Source=MSSQL2008-1;Initial Catalog=agency;
        Integrated Security=False;User ID=adis_agency;Password=niarda2012;Connect Timeout=180;Encrypt=False;
        Packet Size=4096" providerName="System.Data.SqlClient" />
     <add name="AgencyConn" connectionString="Data Source=MSSQL2008-1;Initial Catalog=agency;
        Integrated Security=False;User ID=adis_agency;Password=niarda2012;Connect Timeout=180;Encrypt=False;
        Packet Size=4096" providerName="System.Data.SqlClient"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

以下是成员资格和角色管理器web.config部分:

<membership defaultProvider="AuthProvider">
  <providers>
    <clear/>
      <add name="AuthProvider" type="AuthenticationProvider" applicationName="~/Reserved/" connectionStringName="AgencyConn"/>
  </providers>
</membership>
<roleManager enabled="true" defaultProvider="MyRoleProvider">
  <providers>
    <clear/>
      <add name="MyRoleProvider" type="RoleAccessProvider" connectionStringName="AgencyConn"/>
  </providers>
</roleManager>
Run Code Online (Sandbox Code Playgroud)

请任何人帮忙弄清楚什么是错的?

asp.net asp.net-membership roleprovider membership-provider sql-server-2008

33
推荐指数
6
解决办法
21万
查看次数

ASP.NET MVC使用自定义角色提供程序重定向到访问被拒绝页面

我正在创建一个自定义角色提供程序,我设置了一个Authorize属性,在我的控制器中指定一个角色,它工作正常,如下所示:

[Authorize(Roles="SuperAdmin")]
public class SuperAdminController : Controller
...
Run Code Online (Sandbox Code Playgroud)

但是当用户无法访问此控制器时,他将被重定向到登录页面.如何将他重定向到"AcessDenied.aspx"页面?

asp.net-mvc asp.net-membership roleprovider

29
推荐指数
5
解决办法
4万
查看次数

删除asp.net成员资格和角色提供程序

无论出于何种原因,我正在处理的网站(经过一段时间的停顿)开始尖叫关于asp.net成员资格的sql server连接.我正在使用没有asp.net成员资格的mysql,所以很奇怪.但是,为了确保我已经决定删除​​与它相关的任何内容,包括角色提供者.

我已将这些添加到web.config中

 <membership>
      <providers>
          <clear />
      </providers>
  </membership>
  <roleManager enabled="false">
      <providers>
          <clear />
      </providers>
  </roleManager>
  <profile enabled="false">
      <providers>
          <clear />
      </providers>
  </profile>
Run Code Online (Sandbox Code Playgroud)

但是,它仍然会抛出异常:"配置错误,无法找到默认角色提供程序"..我能做什么?

asp.net-membership roleprovider

27
推荐指数
1
解决办法
7862
查看次数

引用当前的RoleProvider实例?

在ASP.NET页面,存在HttpContext的模块或处理程序内部时,如何获取对当前RoleProvider实例的引用?

它是在调用IPrincipal.IsInRole(..)方法时用于授权的提供程序.默认情况下,或者从配置,我的提供程序似乎是一个SqlRoleProvider实例,由我在运行应用程序时给出的错误.

我想在运行时检查提供程序的类型,以提供有关实际使用哪个提供程序的反馈.

c# asp.net roleprovider

19
推荐指数
1
解决办法
5040
查看次数

在asp.net MVC应用程序的web.config中指定角色

我正在使用表单身份验证创建一个MVC应用程序.我正在对活动目录进行身份验证,因此创建了一个自定义RoleProvider.我的应用程序只关注一小部分角色,到目前为止我一直在web.config的appSettings部分中定义:

<appSettings>
  <add key="DirectorRole" value="Domain\Directors" />
  <add key="ManagementRole" value="Domain\Managers" />
  ...
</appSettings>
Run Code Online (Sandbox Code Playgroud)

但是我遇到了这种方法的几个问题:

  1. 我无法在我的控制器数据注释中引用这些设置:[Authorize(Roles = ConfigurationManager.AppSettings["DirectorRole"])]因为它不会编译所以我必须再次指定组的名称:[Authorize(Roles = "Domain\\Directors")].
  2. 在我的web.config中,我想为我的角色提供程序指定groupsToUse,并且只引用一个预先存在的列表,而不是维护同一组角色的两个单独列表.

似乎必须有一个更好/可重用的方法来定义web.config中的角色,有人能指出我正确的方向吗?

asp.net-mvc web-config roleprovider asp.net-mvc-3

19
推荐指数
1
解决办法
2万
查看次数

使用活动目录角色提供程序MVC4进行授权

我正在构建一个MVC4应用程序,供企业环境内部使用.我使用Windows身份验证,工作正常,但我在使用Active Directory组作为授权角色时遇到了麻烦.

我的Web.config看起来像这样:

<authentication mode="Windows" />        
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
  <providers>
    <clear />
    <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
  </providers>
</roleManager>        
<authorization>
  <deny users="?" />    
</authorization>
Run Code Online (Sandbox Code Playgroud)

当我使用用户授权时,它工作正常:

[Authorize(Users = @"DOMAIN\User1, DOMAIN\User2")]
public ActionResult Create()
{
    return View();
}
Run Code Online (Sandbox Code Playgroud)

但是当我使用角色时,它只是不允许该组中的用户访问此操作:

[Authorize(Roles = @"Domain\Group")]
public ActionResult Create()
{
    return View();
}
Run Code Online (Sandbox Code Playgroud)

我也试过指定组不带域正如我在其他阅读的答复,但没有运气......我想我错过了在Web.config的东西,但我不知道是什么...

我避免使用自定义角色提供程序,因为MVC4应该在没有自定义角色提供程序的情况下实现这一点(或者至少是我认为的那样)

谁能帮我这个?

提前致谢!

authorization web-config roleprovider asp.net-mvc-4

15
推荐指数
1
解决办法
2万
查看次数

MVC4:UserIsInRole - 无法连接到SQL Server数据库

对此我不知所措,昨天它工作正常,今天它似乎被破坏了:

这一行产生错误:

@if (Roles.IsUserInRole(HttpContext.Current.User.Identity.Name, "Admin"))
Run Code Online (Sandbox Code Playgroud)

错误是:无法连接到SQL Server数据库.

整个例外:

System.Web.HttpException was unhandled by user code
  HResult=-2147467259
  Message=Unable to connect to SQL Server database.
  Source=System.Web
  ErrorCode=-2147467259
  WebEventCode=0
  StackTrace:
       at System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(String fullFileName, String dataDir, String connectionString)
       at System.Web.DataAccess.SqlConnectionHelper.EnsureDBFile(String connectionString)
       at System.Web.DataAccess.SqlConnectionHelper.GetConnection(String connectionString, Boolean revertImpersonation)
       at System.Web.Security.SqlRoleProvider.GetRolesForUser(String username)
       at WebMatrix.WebData.SimpleRoleProvider.GetRolesForUser(String username)
       at System.Web.Security.RolePrincipal.IsInRole(String role)
       at System.Web.Security.Roles.IsUserInRole(String username, String roleName)
       at ASP._Page_Views_Shared__LoginPartial_cshtml.Execute() in e:\LeasingWeb\LeasingWeb\Views\Shared\_LoginPartial.cshtml:line 10
       at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
       at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
       at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
       at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
       at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext …
Run Code Online (Sandbox Code Playgroud)

sql-server asp.net-mvc roleprovider

13
推荐指数
2
解决办法
1万
查看次数

如何使用Windows身份验证和自定义角色提供程序设置OWIN

在MVC4中,我<authentication mode="Windows"/>在web.config中启用并创建了一个自定义角色提供程序,然后自动为您包装WindowsIdentitya RolePrincipal.工作就像一个魅力.

你会如何使用OWIN和/或Microsoft.ASPNET.Identity在MVC5中执行此操作?

authentication roleprovider windows-identity owin asp.net-mvc-5

12
推荐指数
1
解决办法
2万
查看次数

IsUserInRole调用GetRolesForUser?

当我实现RoleProvider类并调用Roles.IsUserInRole(字符串用户名,字符串roleName)时,代码执行首先转到方法'GetRolesForUser(string username)'.为什么是这样?当我只是在寻找该用户是否属于一个角色的单一值时,我不想迭代所有角色.这是.NET的角色提供程序类的限制还是我可以做些什么来控制代码的执行?

这是调用代码

if (Roles.IsUserInRole(CurrentUser.UserName, "Teacher")) {
Run Code Online (Sandbox Code Playgroud)

这是IsUserInRole的实现

public override bool IsUserInRole(string username, string roleName) { return true; }
Run Code Online (Sandbox Code Playgroud)

但代码GetRolesForUser始终首先实现:

public override string[] GetRolesForUser(string username) {
        string[] roles = GetAllRoles();
        List<string> userRoles = new List<string>();
        foreach (string role in roles) {
            if (IsUserInRole(username, role)) {
                userRoles.Add(role);
            }
        }
        return userRoles.ToArray();
    }
Run Code Online (Sandbox Code Playgroud)

.net c# roleprovider

11
推荐指数
2
解决办法
9521
查看次数