gpt4 book ai didi

asp.net-mvc-3 - MVC3 内联网成员(member)资格

转载 作者:行者123 更新时间:2023-12-02 03:29:11 25 4
gpt4 key购买 nike

我正在使用连接到 SQL Server dB 的默认 MembershipProvider、ProfileProvider 和 RoleProvider 构建 MVC3 Intranet 应用程序。如果我使用表单例份验证,角色提供程序将正确填充。当我切换到 Windows 身份验证时,角色提供程序不再填充。这是通过在代码中放置断点并查看“Roles.GetRolesForUser()”来测试的。我怀疑正在发生的事情是传递到数据库的用户 ID 是“DOMAIN\USERID”(这是 User.Identity.Name 中的内容),而数据库中的只是用户 ID。

由于一切都是默认的,所以没有太多代码可以发布。

<authentication mode="Windows" />
<authorization>
<deny users="?"/>
</authorization>
<membership defaultProvider="AspNetSqlMembershipProvider">
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
</providers>
<properties></properties>
</profile>
<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider" cacheRolesInCookie="true">
<providers>
<clear />
<add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" />
<add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>

我的第一个想法是,我们是否可以在将身份传递给成员(member)提供商之前删除域,但 User.Identity.Name 只能获取。

纠正此问题的最佳途径是什么,而无需将整个数据库更改为包含域\用户 ID 而不仅仅是用户 ID?是否可以在无需编写自定义成员资格/个人资料/角色提供者的情况下完成此操作?

最佳答案

如果您只想使用 Windows 身份验证,那么您不想使用 SqlRoleProvider,而是想使用 WindowsTokenRoleProvider,它将返回其 AD 角色。 (没有理由使用成员(member)资格提供程序,因为使用 Windows 身份验证时,未经身份验证就无法访问该网站)

如果您想使用 Windows 身份验证,但使用 SqlRoles,那么您可能需要执行以下操作:

http://weblogs.asp.net/scottgu/pages/Recipe_3A00_-Implementing-Role_2D00_Based-Security-with-ASP.NET-2.0-using-Windows-Authentication-and-SQL-Server.aspx

关于asp.net-mvc-3 - MVC3 内联网成员(member)资格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12459994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com