asp.net-mvc - ASP.NET MVC - 根据 Active Directory 对用户进行身份验证,但需要输入用户名和密码

标签 asp.net-mvc asp.net-mvc-2 asp.net-mvc-3 forms-authentication windows-authentication

我正在开发一个 MVC3 应用程序,该应用程序需要根据 AD 对用户进行身份验证。我知道 MVC3 中有一个选项可以创建一个 Intranet 应用程序,该应用程序自动根据 AD 对用户进行身份验证,但它使用 Windows 身份验证并自动登录。该应用程序可以在“开放”工作站上访问,用户需要输入其域用户名和密码。任何示例或在线教程都会很棒。一个示例项目将是异常(exception)。

最佳答案

您可以使用带有表单例份验证的标准 Internet 应用程序模板,并将 ActiveDirectoryMembershipProvider 插入到 web.config 中:

<connectionStrings>
    <add name="ADConnectionString" connectionString="LDAP://YOUR_AD_CONN_STRING" />
</connectionStrings>

<system.web>
    <authentication mode="Forms">
        <forms name=".ADAuthCookie" loginUrl="~/Account/LogOn"
               timeout="15" slidingExpiration="false" protection="All" />
    </authentication>
    <membership defaultProvider="MY_ADMembershipProvider">
        <providers>
            <clear />
            <add name="MY_ADMembershipProvider" 
                 type="System.Web.Security.ActiveDirectoryMembershipProvider" 
                 connectionStringName="ADConnectionString"
                 attributeMapUsername="sAMAccountName" />
        </providers>
    </membership>
</system.web>

通过这种方式,您可以获得 Internet 应用程序模板登录表单,并且它会根据 AD 为您进行验证。

然后只需进行一些 AccountController 清理即可删除重置密码/更改密码/注册功能,只留下登录。

关于asp.net-mvc - ASP.NET MVC - 根据 Active Directory 对用户进行身份验证,但需要输入用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6147864/

相关文章:

javascript - 为什么我的 javascript 没有在此 Razor 代码中执行?

asp.net - ASP .NET MVC 3. session 过期太快

javascript - MVC Controller 调用中未填充内部对象

c# - ASP.NET MVC2 使用通配符或自由文本 url 的自定义路由

c# - 带有 jQ​​uery Ajax 调用的 MVC 不能正确绑定(bind)空数组/可枚举

asp.net - MVC2中事件 View 的亮点?

asp.net-mvc - WebMatrix 路由如何工作?

asp.net-mvc - 具有相同 MachineKey 的 ASP.NET MVC 和 Webforms 应用程序之间的 OWIN 身份验证 cookie 共享

html - 部分 View html 代码未呈现