标签: roleprovider

为什么这会抓住所有块实际上并不是全部

代码非常简单---问题是groupPath字符串中有一个无效字符(确切地说是'/').

我想要做的事情(至少作为一个停止差距)是跳过DirectoryEntries我无法获得cn - 无论为什么.

但是,当我运行此代码时,catch块不会运行,而是我得到:服务器无法运行.和未处理的System.Runtime.InteropServices.COMException.

为什么catch阻止不会捕获此异常.

try
{
    using (DirectoryEntry groupBinding = new DirectoryEntry("LDAP://" + groupPath))
    {
        using (DirectorySearcher groupSearch = new DirectorySearcher(groupBinding))
        {

            using (DirectoryEntry groupEntry = groupSearch.FindOne().GetDirectoryEntry())
            {
                results.Add(string.Format("{0}", groupEntry.Properties["cn"].Value.ToString()));
            }
        }
    }
}
catch
{
    Logger.Error("User has bad roles");
}
Run Code Online (Sandbox Code Playgroud)

附加观察:代码实际上是在一个自定义的RoleProvider中,好奇的是,如果我在一个简单的winforms应用程序中引用这个提供程序,并使用相同的输入调用这个相同的方法,那么catch块就会完全按照它的设想执行.我认为这表明有关.NET异常与COM异常的建议答案并不准确.虽然我无法理解为什么从WebDev服务器执行时此代码无法捕获

.net c# directoryservices roleprovider

7
推荐指数
1
解决办法
2006
查看次数

今天如何在ASP.net MVC 4中进行授权?

我已经和ASP.net MVC合作了好几年了.我过去开发的大多数应用程序都是通过旧版Web应用程序的链接访问的.当用户到达我的某个应用程序时,我的应用程序只是从浏览器中读取一个cookie,表明该用户已通过遗留应用程序进行了身份验证.

现在,我终于开发了一个全新的Web应用程序,需要能够执行身份验证和授权.我确信我可以做点工作,但我想知道今天最好的做法是什么.

从ASP.net WebForms,我熟悉MembershipProvider和RoleProvider类.我对Windows Identity Foundatioin(WIF)也有一点熟悉.

但是,当我查看默认的ASP.net MVC 4应用程序时,"AccountController"类使用称为WebSecurity类的东西.我想知道这是否意味着折旧MembershipProvider和RoleProvider类.

这应该是基本设置,具有由另一个服务器提供的用户名/密码身份验证以及对特权资源的基于角色的访问.

今天在ASP.net MVC 4中实现这些的最佳实践是什么?

.net security roleprovider membership-provider asp.net-mvc-4

7
推荐指数
1
解决办法
6678
查看次数

ASP .NET自定义RoleProvider不尊重cacheRolesInCookie ="true"

我已经实现了一个自定义角色提供程序,并在我的web.config文件中配置它,如下所示:

<roleManager enabled="true" defaultProvider="TDRoleProvider" cacheRolesInCookie="true">
  <providers>
    <clear/>
    <add name="TDRoleProvider" type="TDRoleProvider"/>
  </providers>
</roleManager>
Run Code Online (Sandbox Code Playgroud)

我已经覆盖了我的自定义角色提供程序中的GetRolesForUser函数,我已经介入它,它运行得很好 - 为我正在测试的用户加载了60个角色.但是,我注意到每次调用User.IsInRole的请求都会调用GetRolesForUser.在我编写的其他应用程序中,它只调用一次,然后将结果缓存在cookie中.出于某种原因,缓存不适用于此应用程序.任何想法为什么?

asp.net cookies forms-authentication roleprovider

6
推荐指数
1
解决办法
2817
查看次数

站点地图安全修整会引发SQL错误

我正在使用默认的Sitemap提供程序进行安全修整.但是,有些如何,我得到:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误.

我认为站点地图提供商正在寻找错误位置的角色.我的配置是这样的:

<connectionStrings>
   <add name="DB" ... />
</connectionStrings>


   <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
      <providers>
        <clear/>
        <add name="SqlProvider" .../>
      </providers>
    </membership>
    <roleManager enabled="true">
      <providers>
        <add connectionStringName="DB"  type="System.Web.Security.SqlRoleProvider" ... />
      </providers>
    </roleManager>
Run Code Online (Sandbox Code Playgroud)

Sitemap标记的定义如下:

<siteMap defaultProvider="XmlSiteMapProvider" enabled="true"  >
      <providers>
          <clear/>
          <add name="XmlSiteMapProvider"
            description="Default SiteMap provider."
            type="System.Web.XmlSiteMapProvider "
            siteMapFile="Web.sitemap"
            securityTrimmingEnabled="true"  />
      </providers>
  </siteMap>
Run Code Online (Sandbox Code Playgroud)

为什么我得到sql错误?修剪如何获得角色?

编辑: ysod

c# asp.net asp.net-membership roleprovider sitemapprovider

6
推荐指数
1
解决办法
455
查看次数

需要了解如何在我的应用程序中管理角色(ASP.NET MVC3)

我正在开发一些网站,这是一种在线工作场所,会有一些用户和一些正在进行的计算机编程项目,每个用户可以有多个角色,例如一个特定用户可以是项目的项目经理和开发人员为另一个项目.自然地,项目经理比项目中的开发人员拥有更多的权限.我的问题是如何在我的代码中整齐地管理这个?我打算使用我的自定义角色提供程序并使用Authorize属性,但这还不够,因为我需要项目Id和用户ID来查找用户在特定项目中的角色.

c# asp.net roles roleprovider asp.net-mvc-3

6
推荐指数
1
解决办法
1836
查看次数

Asp.net MVC角色经理

我正在为我的asp.net mvc项目使用角色管理器和Windows身份验证,我们有2个角色,它们是查看者和编辑者.

    <authentication mode="Windows" />
    <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
        <providers>
          <clear />
          <add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        </providers>
    </roleManager>
Run Code Online (Sandbox Code Playgroud)

编辑器可以访问整个应用程序,但Viewer只能访问两个操作

我首先尝试为基本控制器设置Authorize属性,只允许编辑器访问所有内容:

[Authorize(Roles = "Editors")]
public class BaseController : Controller
Run Code Online (Sandbox Code Playgroud)

然后将Authorize属性添加到这两个操作:

[Authorize(Roles = "Viewers,Editors")]
public ActionResult Report(PaymentsUnallocatedAndQueriedModel model)
Run Code Online (Sandbox Code Playgroud)

它不起作用,它不允许观众访问任何有意义的动作.

我认为在每个操作的顶部重复授权属性并不是一个好主意.

你能否告诉我是否有更好的解决方案

c# asp.net-mvc authorization roleprovider

6
推荐指数
1
解决办法
4165
查看次数

如何通过StructureMap为具有WCF的自定义角色提供程序提供依赖注入?

我们将在WCF中使用自定义角色提供程序.重写的方法GetRolesForUser将需要使用已存在的RoleRepository.

现在,使用一个普通的类,我们使用StructureMap构造它,并且通过构造函数注入RoleRepository依赖项.

但是,它是WCF,它通过web.config中的roleManager属性来构造自定义角色提供程序类并且"完成".

我真的不想将RoleRepository depndency硬连接到自定义角色probvider类,但它看起来像我必须要的.

有任何想法吗?

structuremap wcf dependency-injection roleprovider

5
推荐指数
1
解决办法
1055
查看次数

如何让没有角色的用户,

是否有任何合理有效的方法来获取不属于特定角色的用户列表?

我能看到的唯一方法是

  1. 从数据库获取所有用户并执行签入代码

  2. 直接转到数据库并回避角色提供程序

c# asp.net asp.net-membership roles roleprovider

5
推荐指数
1
解决办法
1553
查看次数

在类库中引用RoleProvider

我正在尝试在类库中创建自定义角色提供程序,由于某种原因我无法引用System.Web.Security.RoleProvider.

System.Web在项目中添加了一个引用,但仍然没有运气.有什么理由不能这样做吗?

asp.net roleprovider

5
推荐指数
1
解决办法
2226
查看次数

使用默认成员资格提供程序或继承它的自定义提供程序有什么原因?

我在8个月前发布了这个问题.接受的答案涉及一些你不会通过默认提供商的规则播放而错过的东西.例如,如果您不使用从RoleProvider继承的自定义RoleProvider,则您将失去使用快速快捷方式的功能User.IsInRole().答案是指像"内置管道"这样的东西.

我想知道的是,我可以在哪里找到依赖于"内置管道"的完整列表,以及显示他们在幕后调用哪些重写方法的内容.

例如,HttpContext.Current.User.IsInRole()是(我假设)在我的自定义RoleProvider中引用并调用我的覆盖"IsUserInRole()"方法,但是我希望看到明确说明HttpContext.Current.User.IsInRole()实际调用的文档,IsUserInRole()对于所有提供者的所有此类方法.

我知道它应该是显而易见的(IsInRole()和IsUserInRole()是如此相似),但我的询问动机是看到并了解其他类型的可用的快捷方式,我甚至都不知道的.我有一种感觉,我已经多次重新发明了轮子,我甚至都不知道.

c# asp.net asp.net-membership roleprovider membership-provider

5
推荐指数
1
解决办法
212
查看次数