相关疑难解决方法(0)

ASP .NET MVC使用Active Directory组进行表单授权

我正在尝试使用ASP.NET MVC中的用户和组对Active Directory进行身份验证.

我在所有类中都添加了以下属性(帐户类除外):

[Authorize (Roles="SubcontractDB Users")]
Run Code Online (Sandbox Code Playgroud)

该组位于活动目录中的OU = Area-> OU = Groups-> OU = Company-> CN = SubcontractDB下.我假设我还需要在web.config中设置一个RoleManager,我试图按如下方式进行:

<roleManager defaultProvider="ADRoleProvider">
  <providers>
    <clear />
        <add name="ADMembershipProvider" 
             type="System.Web.Security.ActiveDirectoryMembershipProvider" 
             connectionStringName="ADConnectionString" 
             attributeMapUsername="sAMAccountName" />
  </providers>
</roleManager>
Run Code Online (Sandbox Code Playgroud)

我的连接字符串是:

    <add name="ADConnectionString" 
         connectionString="LDAP://blah.com:389/DC=blah,DC=wateva,DC=com"/>
Run Code Online (Sandbox Code Playgroud)

显然我做错了,因为这不起作用.我想要做的就是允许访问属于AD中某个组成员的用户.

.net asp.net-mvc active-directory

26
推荐指数
2
解决办法
3万
查看次数

使用自定义消息的MVC 3 AuthorizeAttribute重定向

如何创建自定义AuthorizeAttribute,以字符串参数的形式指定消息,然后将其传递到登录页面?

例如,理想情况下执行此操作会很酷:

[Authorize(Message = "Access to the blah blah function requires login. Please login or create an account")]
public ActionResult SomeAction()
{
    return View();
}
Run Code Online (Sandbox Code Playgroud)

然后,在Login操作中,我可以这样做:

public ActionResult Login(string message = "")
{
    ViewData.Message = message;

    return View();
}
Run Code Online (Sandbox Code Playgroud)

最后在视图中我可以这样做:

@if (!String.IsNullOrEmpty(ViewData.Message))
{
    <div class="message">@ViewData.Message</div>
}

<form> blah blah </form>
Run Code Online (Sandbox Code Playgroud)

基本上我想将自定义消息传递到登录页面,以便我可以显示特定于用户在该特定时间尝试访问的消息.

c# asp.net-mvc authorization asp.net-mvc-3

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